Date: Sun, 23 Apr 1995 19:33:15 +1000 From: Bruce Evans <bde@zeta.org.au> To: charnier@lirmm.fr, hackers@FreeBSD.org Subject: Re: pb using maninstall Message-ID: <199504230933.TAA25575@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>/usr/src/gnu/usr.bin/ld is particular because it contains a PROG (ld) >and contains subdirs containing others PROGs (ldconfig, ldd, rtld). >I tried the following (BUT FAILED) because maninstall go into subdirs and >current dir but install don't see current dir. >diff -c -r1.16 Makefile > ... >+ .include <bsd.subdir.mk> >Is .../usr.bin/ld a <bsd.subdir.mk> or a <bsd.prog.mk>? That is the question. It is both. bsd.prog.mk is supposed to handle this, and does handle it for other targets. The handling is not quite right. E.g., if you run `make -k install' in /usr/src/gnu/usr.bin/ld and there is an error, then the subdirs are not entered. I often get this error when I run `make -k install' with an nfs mounted /usr. I want this to install only to directories on the root partition and continue after access errors on the /usr partition. It works except /sbin/ld.so doesn't get installed because the rtld subdir doesn't get entered. >The correct solution (IMHO) will be to create .../usr.bin/ld/ld and to >deprecate .../usr.bin/ld as a <bsd.prog.mk> dir. I like the existing layout. Someone should fix bsd.prog.mk. I think it is easy to add the maninstall rule by copying an existing rule. >I found a typo in bsd.prog.mk, see below >.if defined(PROG) >.if defined(SRCS) >.else defined(PROG) <---- should be .else defined(SRCS) Shouldn't it be `.else !defined(SRCS)? :-) >SRCS= ${PROG}.c >.endif >.if !defined(MAN1) && !defined(MAN2) && !defined(MAN3) && \ > !defined(MAN4) && !defined(MAN5) && !defined(MAN6) && \ > !defined(MAN7) && !defined(MAN8) && !defined(NOMAN) >MAN1= ${PROG}.1 >.endif >.endif It's hard to see which ifdefs the endifs correspond too. None of the endifs in /usr/src/share/mk/*.mk is commented, although "comments" seem work due to design bugs the same as in traditional C: .ifdef FOO .else !FOO .endif FOO (Gnu standard) but also .ifdef FOO .else WRONG .endif :-( garbage :-( Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199504230933.TAA25575>