Add -s option to config.

This option allows for specifying the directory to use as the location for
kernel source files. This option was ported from NetBSD.

GitHub Pull Request:   https://github.com/freebsd/freebsd/pull/18
Submitted by:          Steve Kiernan <stevek@juniper.net>, Simon Gerraty <sjg@juniper.net>
Obtained from:         Juniper Networks, Inc.
Reviewed by:           imp
Differential Revision: https://reviews.freebsd.org/D1722
Relnotes:              yes
This commit is contained in:
Craig Rodrigues 2015-01-29 22:49:30 +00:00
parent 0b77a417c8
commit 69627a0de1
2 changed files with 24 additions and 3 deletions

View File

@ -39,6 +39,7 @@
.Op Fl CVgp
.Op Fl I Ar path
.Op Fl d Ar destdir
.Op Fl s Ar srcdir
.Ar SYSTEM_NAME
.Nm
.Op Fl x Ar kernel
@ -85,6 +86,10 @@ Note that
does not append
.Ar SYSTEM_NAME
to the directory given.
.It Fl s Ar srcdir
Use
.Ar srcdir
as the source directory, instead of the default one.
.It Fl m
Print the MACHINE and MACHINE_ARCH values for this
kernel and exit.
@ -143,6 +148,14 @@ header files,
definitions of
the number of various devices that will be compiled into the system.
.Pp
The
.Nm
utility looks for kernel sources in the directory
.Pa ../..
or the one given with the
.Fl s
option.
.Pp
After running
.Nm ,
it is necessary to run

View File

@ -116,7 +116,7 @@ main(int argc, char **argv)
printmachine = 0;
kernfile = NULL;
SLIST_INIT(&includepath);
while ((ch = getopt(argc, argv, "CI:d:gmpVx:")) != -1)
while ((ch = getopt(argc, argv, "CI:d:gmpsVx:")) != -1)
switch (ch) {
case 'C':
filebased = 1;
@ -144,6 +144,12 @@ main(int argc, char **argv)
case 'p':
profiling++;
break;
case 's':
if (*srcdir == '\0')
strlcpy(srcdir, optarg, sizeof(srcdir));
else
errx(EXIT_FAILURE, "src directory already set");
break;
case 'V':
printf("%d\n", CONFIGVERS);
exit(0);
@ -180,7 +186,8 @@ main(int argc, char **argv)
len = strlen(destdir);
while (len > 1 && destdir[len - 1] == '/')
destdir[--len] = '\0';
get_srcdir();
if (*srcdir == '\0')
get_srcdir();
} else {
strlcpy(destdir, CDIR, sizeof(destdir));
strlcat(destdir, PREFIX, sizeof(destdir));
@ -275,7 +282,8 @@ static void
usage(void)
{
fprintf(stderr, "usage: config [-CgmpV] [-d destdir] sysname\n");
fprintf(stderr,
"usage: config [-CgmpV] [-d destdir] [-s srcdir] sysname\n");
fprintf(stderr, " config -x kernel\n");
exit(EX_USAGE);
}