On Tue, 14 Aug 2001, Ruslan Ermilov wrote:
> On Tue, Aug 14, 2001 at 08:55:56AM -0700, David O'Brien wrote:
> > >From a correctness stand point, building the .mgc files at install time
> > is the correct thing to do... or maybe we should do both -- doing the
> > [re]creation of the .mgc files at install time in the cross-[arch-]build
> > case.
Not both.
> > +mkmagic: apprentice.c print-hacked.c
> > + ${HOST_CC} -o mkmagic -DHAVE_CONFIG_H -DCOMPILE_ONLY \
> > + -I${.CURDIR} -I${SRCDIR} ${.ALLSRC}
> >
> Whoa, cool!
>
> That's what I wanted from the very beginning (-DCOMPILE_ONLY knob).
> It then fits just nicely into the `build-tools' concept. And we
> don't need this ugly HOST_CC hack for Makefile.inc1, as ${CC} is
> set correctly during the `build-tools' stage. Let's don't reinvent
> the wheel, and please try the attached patch instead.
I agree (except the build-tools concept is a hack to work around
build-tools binaries not being buildable and installable in the usual
way (with 1 binary per Makefile)).
> Index: usr.bin/file/Makefile
> ===================================================================
> RCS file: /home/ncvs/src/usr.bin/file/Makefile,v
> retrieving revision 1.21
> diff -u -r1.21 Makefile
> --- usr.bin/file/Makefile 2001/08/08 16:19:30 1.21
> +++ usr.bin/file/Makefile 2001/08/14 17:30:11
> @@ -34,23 +34,29 @@
> CFLAGS+= -DMAGIC='"${MAGICPATH}/magic"' -DBUILTIN_ELF -DELFCORE -DHAVE_CONFIG_H
> CFLAGS+= -I${.CURDIR} -I${SRCDIR}
>
> -CLEANFILES+= magic magic.mgc magic.mime.mgc magic.mime.PITA
> +CLEANFILES+= mkmagic magic magic.mgc magic.mime.mgc magic.mime.PITA
CLEANFILES= magic magic.mgc magic.mime.mgc magic.mime.PITA mkmagic
(This fixes disorder and the usual style bug for the initial assignment
to CLEANFILES.)
>
> MAGFILES= ${SRCDIR}/Header\
> ${SRCDIR}/Localstuff\
> ${SRCDIR}/Magdir/[a-z]*
>
> -all: file magic magic.mgc magic.mime.mgc
> +all: ${PROG} magic magic.mgc magic.mime.mgc
all: magic magic.mgc magic.mime.mgc
(Don't depend on `file' twice. Putting it first may have been a workaround
for broken dependencies in an old version of the Makefile.)
> +build-tools: mkmagic
> +
> +mkmagic: apprentice.c print-hacked.c
> + ${CC} -DHAVE_CONFIG_H -DCOMPILE_ONLY \
> + -I${.CURDIR} -I${SRCDIR} -o ${.TARGET} ${.ALLSRC}
This should use CFLAGS if possible, and should use LDFLAGS, something
like:
${CC} -DCOMPILE_ONLY {CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
See sh/Makefile for other tweaks (depend on .o instead of .c ...). Other
probems with this (generally shared with all build-tools binaries):
- CFLAGS for the main binary may be inappropriate for the tools
- missing dependencies on headers.
> +
> magic: ${MAGFILES}
> cat ${.ALLSRC} > ${.TARGET}
>
> -magic.mgc: file magic
> - ./${PROG} -C -m magic
> +magic.mgc: mkmagic magic
> + ./mkmagic magic
>
> -magic.mime.mgc: file magic.mime
> +magic.mime.mgc: mkmagic magic.mime
> ln -sf ${SRCDIR}/magic.mime magic.mime.PITA
> - ./${PROG} -C -m magic.mime.PITA
> + ./mkmagic magic.mime.PITA
> mv magic.mime.PITA.mgc magic.mime.mgc
>
> CLEANFILES+= print-hacked.c
Bruce
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message