Date: Wed, 28 Aug 1996 16:25:23 +0900 From: Toshihiro Kanda <candy@fct.kgc.co.jp> To: freebsd-hackers@freebsd.org Subject: Suggestion: let config(8) support symbolic linked /usr/src/sys/compile Message-ID: <199608280725.QAA01642@xxx.fct.kgc.co.jp>
next in thread | raw e-mail | index | archive | help
Hello. The document SMM:1 describes how to separate /usr/src/sys/compile directory from /usr/src. (see /usr/share/doc/smm/01.setup/paper.ascii.gz "6.6. Recompiling and reinstalling system software".) I modified config(8) to support this facility. In FreeBSD, steps to separate are: 1. Make `obj' directories. (At the first time only) 1.1 # mkdir /usr/obj/sys 1.2 # mv /usr/src/sys/compile /usr/obj/sys 1.3 # mkdir /usr/obj/sys/libkern 1.4 # ln -s /usr/obj/sys/libkern /usr/src/sys/libkern/obj (1.3 and 1.4 are done by `make obj' in /usr/src) 2. Build a kernel. 2.1 # cd /usr/src/sys/i386/conf 2.2 # config KERNEL 2.3 # cd ../../compile 2.4 # rm machine; ln -s /usr/src/sys @; ln -s /usr/src/sys/i386 machine 2.5 # make all install My modification is very simple. In the step 2.2, `config -l KERNEL' will do step 2.4 automatically. How about this idea? Thank you. candy@fct.kgc.co.jp (Toshihiro Kanda) -----8<----------8<----------8<----------8<----------8<----- # patch for /usr/src/usr.sbin/config/ # (FreeBSD 2.1.5R) *** config.h.orig Wed Aug 28 15:08:23 1996 --- config.h Wed Aug 28 15:08:32 1996 *************** *** 215,220 **** --- 215,221 ---- int dst; int profiling; int debugging; + int shadow_directory; int maxusers; u_int loadaddress; *** main.c.orig Wed Jul 10 13:15:23 1996 --- main.c Wed Aug 28 15:25:36 1996 *************** *** 75,81 **** int ch; char *p; ! while ((ch = getopt(argc, argv, "gpn")) != EOF) switch (ch) { case 'g': debugging++; --- 75,81 ---- int ch; char *p; ! while ((ch = getopt(argc, argv, "gpln")) != EOF) switch (ch) { case 'g': debugging++; *************** *** 83,88 **** --- 83,91 ---- case 'p': profiling++; break; + case 'l': + shadow_directory++; + break; case 'n': no_config_clobber = TRUE; break; *************** *** 185,192 **** --- 188,211 ---- { char xxx[80]; + if (shadow_directory) { + #define SYSDIR "/usr/src/sys" + (void) strcpy(xxx, SYSDIR); + if (symlink(xxx, path("@"))) { + perror(path("@")); + exit(2); + } + (void) sprintf(xxx, "@/%s/include", machinename); + if (symlink(xxx, path("machine"))) { + perror(path("machine")); + exit(2); + } + #undef SYSDIR + } + else { (void) sprintf(xxx, "../../%s/include", machinename); (void) symlink(xxx, path("machine")); + } } makefile(); /* build Makefile */ headers(); /* make a lot of .h files */ -----8<----------8<----------8<----------8<----------8<-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199608280725.QAA01642>