From owner-freebsd-hackers Wed Aug 28 06:53:12 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id GAA28155 for hackers-outgoing; Wed, 28 Aug 1996 06:53:12 -0700 (PDT) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id GAA28147 for ; Wed, 28 Aug 1996 06:53:01 -0700 (PDT) Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.12/8.6.9) id XAA27677; Wed, 28 Aug 1996 23:52:03 +1000 Date: Wed, 28 Aug 1996 23:52:03 +1000 From: Bruce Evans Message-Id: <199608281352.XAA27677@godzilla.zeta.org.au> To: candy@fct.kgc.co.jp, freebsd-hackers@FreeBSD.org Subject: Re: Suggestion: let config(8) support symbolic linked /usr/src/sys/compile Sender: owner-hackers@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk > 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. > >... > 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? I'd like the final solution to use fewer symlinks. This can probably be done by generating absolute paths for `machine' symlink and the -I statements: machine -> /usr/src/sys/i386/include # or wherever it is S= /usr/src/sys # was ../.. or ./@ Perhaps the symlinks to the object directories should be in the conf directory: somewhere/conf -> /usr/src/obj/somewhere/conf somewhere/conf/GENERIC@ -> /usr/src/obj/somewhere/conf/GENERIC The aic assembler sources use relative paths (because of lack of support for -I in the aic assembler). These paths become wrong when the obj dir isn't in the source tree. I use the following fixes for this. --- diff -c2 src/sys/dev/aic7xxx/aic7xxx.seq~ src/sys/dev/aic7xxx/aic7xxx.seq *** src/sys/dev/aic7xxx/aic7xxx.seq~ Mon Jun 10 07:44:17 1996 --- src/sys/dev/aic7xxx/aic7xxx.seq Mon Jun 10 07:44:23 1996 *************** *** 42,50 **** VERSION AIC7XXX_SEQ_VER "$Id: aic7xxx.seq,v 1.42 1996/06/09 17:29:11 gibbs Exp $" ! #if defined(__NetBSD__) ! #include "../../../../dev/ic/aic7xxxreg.h" ! #elif defined(__FreeBSD__) ! #include "../../dev/aic7xxx/aic7xxx_reg.h" ! #endif /* --- 42,46 ---- VERSION AIC7XXX_SEQ_VER "$Id: aic7xxx.seq,v 1.42 1996/06/09 17:29:11 gibbs Exp $" ! #include "aic7xxx_reg.h" /* diff -c2 src/sys/i386/conf/files.i386~ src/sys/i386/conf/files.i386 *** src/sys/i386/conf/files.i386~ Tue Jul 9 13:19:17 1996 --- src/sys/i386/conf/files.i386 Tue Aug 27 17:47:47 1996 *************** *** 10,18 **** clean "aic7xxx_asm" # aic7xxx_seq.h optional ahc device-driver \ compile-with "./aic7xxx_asm -o $@ $S/dev/aic7xxx/aic7xxx.seq" \ no-obj no-implicit-rule before-depend \ clean "aic7xxx_seq.h" \ ! dependency "$S/dev/aic7xxx/aic7xxx_reg.h $S/dev/aic7xxx/aic7xxx.seq aic7xxx_asm" # linux_genassym optional compat_linux \ --- 10,24 ---- clean "aic7xxx_asm" # + aic7xxx_reg.h optional ahc device-driver \ + dependency "$S/dev/aic7xxx/aic7xxx_reg.h" \ + compile-with "cp $> $@" \ + no-obj no-implicit-rule before-depend \ + clean "aic7xxx_reg.h" + # aic7xxx_seq.h optional ahc device-driver \ compile-with "./aic7xxx_asm -o $@ $S/dev/aic7xxx/aic7xxx.seq" \ no-obj no-implicit-rule before-depend \ clean "aic7xxx_seq.h" \ ! dependency "aic7xxx_reg.h $S/dev/aic7xxx/aic7xxx.seq aic7xxx_asm" # linux_genassym optional compat_linux \ --- Bruce