Re: bsd.cpu.mk confusion

From: Ulrich Spoerlein (spoerlein_at_informatik.uni-wuerzburg.de)
Date: 06/29/05

  • Next message: Remington L: "Re: buildkernel woes"
    Date: Wed, 29 Jun 2005 16:15:56 +0200
    To: Björn König <bkoenig@cs.tu-berlin.de>
    
    
    

    On Wed, 29.06.2005 at 15:04:12 +0200, Björn König wrote:
    > Ulrich Spoerlein wrote:
    >
    > >[...]
    > >Here's a minimal Makefile
    > >CPUTYPE=pentium-m
    > >CC= icc
    > >.include <bsd.prog.mk>
    > >.include <bsd.cpu.mk>
    > >Then
    > >% make -V CFLAGS
    > >-O2 -fno-strict-aliasing -pipe -march=pentium-m -tpp6 -xiMK
    >
    > You have overlooked that sys.mk will be processed "before any other
    > file, including makefile and Makefile" (make(1)). /usr/share/mk/sys.mk
    > includes already bsd.cpu.mk once at a time where CC has not been set to
    > 'icc'. Therefore ${_CPUCFLAGS} will be added to CFLAGS in bsd.cpu.mk.
    > Afterwards you include bsd.cpu.mk twice.

    Hmm, but since CPUTYPE isn't set at that time too, there shouldn't be
    the gcc-only -march flag, no?
    Or is it the late macro expansion, that always confuses me.

    Anyway, putting CC and CPUTYPE into make.conf solves my problems. But
    the thing is, I only want these flags on some specific programs, not
    all (especially CC=icc).

    Looking at MAKEFILE_LIST, it looks like I'm SOL

    % make -V .MAKEFILE_LIST|tr ' ' \\n|sed '/\.\./d'
    /usr/share/mk/sys.mk
    /etc/make.conf
    /usr/share/mk/bsd.compat.mk
    /usr/share/mk/bsd.cpu.mk
    Makefile
    /usr/share/mk/bsd.prog.mk
    /usr/share/mk/bsd.init.mk
    /usr/share/mk/bsd.compat.mk
    /usr/share/mk/bsd.own.mk
    /usr/share/mk/bsd.libnames.mk
    /usr/share/mk/bsd.nls.mk
    /usr/share/mk/bsd.files.mk
    /usr/share/mk/bsd.incs.mk
    /usr/share/mk/bsd.links.mk
    /usr/share/mk/bsd.man.mk
    /usr/share/mk/bsd.dep.mk
    /usr/share/mk/bsd.obj.mk
    /usr/share/mk/bsd.own.mk
    /usr/share/mk/bsd.subdir.mk
    /usr/share/mk/bsd.init.mk
    /usr/share/mk/bsd.sys.mk

    Well, I could delete CFLAGS and force loading bsd.cpu.mk again, so this
    Makefile kinda works:

    CFLAGS=
    CC=icc
    CPUTYPE=pentium-m

    .include <bsd.prog.mk>
    .include <bsd.cpu.mk>
    % make -V CFLAGS
      -tpp6 -xiMK
    % make -V .MAKEFILE_LIST|tr ' ' \\n|sed '/\.\./d'
    /usr/share/mk/sys.mk
    /etc/make.conf
    /usr/share/mk/bsd.compat.mk
    /usr/share/mk/bsd.cpu.mk
    Makefile
    /usr/share/mk/bsd.prog.mk
    /usr/share/mk/bsd.init.mk
    /usr/share/mk/bsd.compat.mk
    /usr/share/mk/bsd.own.mk
    /usr/share/mk/bsd.libnames.mk
    /usr/share/mk/bsd.nls.mk
    /usr/share/mk/bsd.files.mk
    /usr/share/mk/bsd.incs.mk
    /usr/share/mk/bsd.links.mk
    /usr/share/mk/bsd.man.mk
    /usr/share/mk/bsd.dep.mk
    /usr/share/mk/bsd.obj.mk
    /usr/share/mk/bsd.own.mk
    /usr/share/mk/bsd.subdir.mk
    /usr/share/mk/bsd.init.mk
    /usr/share/mk/bsd.sys.mk
    /usr/share/mk/bsd.cpu.mk

    Am I asking for trouble using this construct? Thanks anyway for
    pointing me to make(1), d'oh!

    Ulrich Spoerlein

    -- 
     PGP Key ID: F0DB9F44				Encrypted mail welcome!
    Fingerprint: F1CE D062 0CA9 ADE3 349B  2FE8 980A C6B5 F0DB 9F44
    Ok, which part of "Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn."
    didn't you understand?
    
    



  • Next message: Remington L: "Re: buildkernel woes"