Date: 18 Aug 1997 09:22:37 GMT From: nnd@itfs.nsk.su To: bugs@freebsd.org Subject: Re: bin/4314: games/boggle Makefile correction Message-ID: <5t948t$s97@news.itfs.nsk.su> References: <199708171410.HAA29629@hub.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Evans <bde@zeta.org.au> wrote:
> > Makefile for src/games/boggle incorrectly lists
> >data files ('dictionary' and 'dictindex') as a source for
> >'all' target, whereas they obviously are the sources for
> >'beforeinstall' target already used in this Makefile.
>
> No, 'dictionary' and 'dictindex' are certainly sources for
> the 'all' target, and 'install' targets including 'beforeinstall'
> should never have sources, since sources for them (and not for
> 'all') would result in things being built at install time.
Then we must have 'afterall' target in *.*.mk files ;-)
> You shouldn't expect 'make obj clean cleandepend depend' to work in general.
> If the obj directory doesn't already exist, then ${.OBJDIR} is "." the
> first time this is run, and .depend is created in ".".
Yes, you are right - I only mean that 'make -j12 all' was
done AFTER all of "obj clean cleandepend depend" targets.
> 'make -j12' fails because ${MKDICT} is not a source for 'dictionary'.
> '::' doesn't work right here (it is used just to keep ${MKDIR} out of
> ${.ALLSRC} . This use is completely wrong - '::' is good for accumulating
> actions but bad for accumulating sources).
>
> >>Fix:
>
> Not a fix.
Here is another patch (relative to previous one
already committed by jkh). After it:
1) All work is done at 'make all' stage and not at 'make install';
2) All standard targets (obj clean cleandepend depend all install cleandir)
works with/without '-j12' flag (one at a time - their combinations
have little sense with '-j12');
3) 'cleandepend' target works (with unpatched Makefile it only
produced 'rm -f .depend' at top level).
N.Dudorov
--- src/games/boggle/Makefile Mon Aug 18 15:28:47 1997
+++ src/games/boggle-patched/Makefile Mon Aug 18 16:20:56 1997
@@ -3,6 +3,8 @@
FILES= dictionary dictindex
CLEANFILES+= ${FILES}
+DICTSOURCE= ${.CURDIR}/../../share/dict/web2
+
.if exists(${.OBJDIR}/mkdict)
MKDICT= ${.OBJDIR}/mkdict/mkdict
.else
@@ -14,6 +16,7 @@
MKINDX= ${.CURDIR}/mkindex/mkindex
.endif
+all: ${FILES}
${MKDICT}:
cd ${.CURDIR}/mkdict; ${MAKE}
@@ -21,18 +24,20 @@
${MKINDX}:
cd ${.CURDIR}/mkindex; ${MAKE}
-dictionary:: ${MKDICT}
-dictionary:: ${.CURDIR}/../../share/dict/web2
- ${MKDICT} < ${.ALLSRC} > ${.TARGET}
-
-dictindex:: ${MKINDX}
-dictindex:: dictionary
- ${MKINDX} < ${.ALLSRC} > ${.TARGET}
+dictionary: ${MKDICT} ${DICTSOURCE}
+ ${MKDICT} < ${DICTSOURCE} > ${.TARGET}
+
+dictindex: ${MKINDX} dictionary
+ ${MKINDX} < dictionary > ${.TARGET}
-beforeinstall: ${FILES}
+beforeinstall:
${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \
${FILES} ${DESTDIR}${SHAREDIR}/games/boggle/
SUBDIR= boggle mkdict mkindex
+.if make(depend) || make(cleandepend)
+.include <bsd.subdir.mk>
+.else
.include <bsd.prog.mk>
+.endif
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5t948t$s97>
