[BACK]Return to Makefile CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / tools

Annotation of src/tools/Makefile, Revision 1.150

1.150   ! joerg       1: #      $NetBSD: Makefile,v 1.149 2011/10/11 13:54:01 joerg Exp $
1.1       tv          2:
1.3       tv          3: .include <bsd.own.mk>
                      4:
1.118     gmcgarry    5: .if defined(HAVE_GCC)
1.94      jmc         6: TOOLCHAIN_BITS= gmake .WAIT
1.146     mrg         7: .if ${TOOLCHAIN_MISSING} == "no"
                      8: .if ${HAVE_GCC} >= 45
                      9: TOOLCHAIN_BITS+= gmp .WAIT
                     10: TOOLCHAIN_BITS+= mpfr .WAIT
                     11: TOOLCHAIN_BITS+= mpc .WAIT
1.94      jmc        12: .endif
                     13: TOOLCHAIN_BITS+= binutils .WAIT
1.77      mrg        14: TOOLCHAIN_BITS+= gcc
1.97      mrg        15: .  if ${MKCROSSGDB:Uno} != "no"
1.74      cl         16: TOOLCHAIN_BITS+= gdb
1.70      mrg        17: .  endif
                     18: TOOLCHAIN_BITS+= .WAIT dbsym mdsetimage
1.58      thorpej    19: # XXX Eventually, we want to be able to build dbsym and mdsetimage
                     20: # XXX if EXTERNAL_TOOLCHAIN is set.
1.31      tv         21: .endif
1.118     gmcgarry   22: .endif
                     23:
                     24: .if defined(HAVE_PCC)
                     25: TOOLCHAIN_BITS= gmake .WAIT
                     26: .if ${TOOLCHAIN_MISSING} == "no"
                     27: TOOLCHAIN_BITS+= binutils .WAIT
                     28: TOOLCHAIN_BITS+= pcc
                     29: .endif
                     30: TOOLCHAIN_BITS+= .WAIT dbsym mdsetimage
                     31: .endif
1.31      tv         32:
1.137     darran     33: DTRACE_BITS=
                     34: .if ${MKDTRACE} != "no"
                     35: DTRACE_BITS+= .WAIT libelf
                     36: DTRACE_BITS+= .WAIT libdwarf
                     37: DTRACE_BITS+= .WAIT libctf
                     38: DTRACE_BITS+= .WAIT ctfconvert ctfmerge
                     39: .endif
                     40:
1.99      mrg        41: LINT_BITS=
                     42: .if ${MKLINT} != "no"
                     43: LINT_BITS= lint lint2
                     44: .endif
                     45:
1.16      tv         46: # Dependencies in SUBDIR below ordered to maximize parallel ability.
1.29      tv         47: SUBDIR=        host-mkdep .WAIT compat .WAIT \
1.124     apb        48:        binstall .WAIT mktemp .WAIT sed .WAIT \
1.113     apb        49:                cap_mkdb crunchgen ctags genassym gencat hexdump join \
1.99      mrg        50:                ${LINT_BITS} \
1.150   ! joerg      51:                lorder makewhatis mkdep mtree nbperf rpcgen tic tsort \
1.134     roy        52:                uudecode m4 \
1.132     mrg        53:        .WAIT texinfo \
                     54:        .WAIT yacc \
                     55:        .WAIT awk \
                     56:        .WAIT lex \
                     57:        .WAIT pax \
                     58:        .WAIT ${TOOLCHAIN_BITS} \
1.137     darran     59:        ${DTRACE_BITS} \
1.138     jmmv       60:                asn1_compile cat cksum compile_et config db \
1.145     elric      61:                file lint1 slc \
1.144     riz        62:                makefs .WAIT menuc mkcsmapper mkesdb mklocale mknod msgc \
1.132     mrg        63:                .WAIT disklabel \
                     64:                .WAIT paxctl \
                     65:                .WAIT fdisk \
                     66:                .WAIT installboot \
1.119     apb        67:                pwd_mkdb stat strfile sunlabel zic
1.39      tv         68:
1.142     joerg      69: .if ${MKLLVM} != "no"
                     70: SUBDIR+= \
                     71:        llvm .WAIT \
1.149     joerg      72:        llvm-lib/libLLVMSupport llvm-lib/libLLVMTableGen .WAIT \
1.142     joerg      73:        llvm-tblgen .WAIT \
1.149     joerg      74:        llvm-clang-tblgen .WAIT \
1.142     joerg      75:        llvm-include .WAIT \
                     76:        llvm-lib .WAIT \
                     77:        llvm-clang
                     78: .endif
                     79:
1.121     dyoung     80: .if ${MKMAN} != "no" || ${MKDOC} != "no" || ${MKHTML} != "no"
1.136     joerg      81: .  if ${MKGROFF} != "no"
1.39      tv         82: SUBDIR+=       groff
1.136     joerg      83: .  endif
1.128     joerg      84: SUBDIR+=       mandoc
1.39      tv         85: .endif
1.22      tv         86:
                     87: .if ${MKMAINTAINERTOOLS:Uno} != "no"
1.103     lukem      88: SUBDIR+=       autoconf .WAIT gettext
1.72      matt       89: .endif
                     90:
1.140     mrg        91: .if ${USE_PIGZGZIP} != "no"
                     92: SUBDIR+=       pigz
                     93: .endif
                     94:
1.86      jmc        95: .if ${MACHINE} == "hp700"
1.83      skrll      96: SUBDIR+=       hp700-mkboot
                     97: .endif
                     98:
1.86      jmc        99: .if ${MACHINE} == "ibmnws"
1.72      matt      100: SUBDIR+=       ibmnws-ncdcs
1.79      matt      101: .endif
                    102:
1.86      jmc       103: .if ${MACHINE} == "macppc"
1.79      matt      104: SUBDIR+=       macppc-fixcoff
1.48      kleink    105: .endif
                    106:
1.116     garbled   107: .if (${MACHINE} == "prep" || ${MACHINE} == "rs6000" || ${MACHINE} == "bebox")
1.115     garbled   108: SUBDIR+=       powerpc-mkbootimage
1.22      tv        109: .endif
1.37      gmcgarry  110:
1.148     tsutsui   111: .if ${MACHINE_ARCH} == "m68k"
                    112: SUBDIR+=       m68k-elf2aout
                    113: .endif
                    114:
1.147     mrg       115: .if (${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \
                    116:      ${MACHINE_ARCH} == "mips64el" || ${MACHINE_ARCH} == "mips64eb")
1.37      gmcgarry  117: SUBDIR+=       mips-elf2ecoff
1.76      sekiya    118: .endif
                    119:
                    120: .if (${MACHINE} == "sgimips")
                    121: SUBDIR+=       sgivol
1.51      bjh21     122: .endif
                    123:
1.82      abs       124: .if ${MACHINE} == "acorn32"
                    125: SUBDIR+=       sparkcrc
                    126: .endif
                    127:
1.125     abs       128: .if (${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "sparc64")
1.51      bjh21     129: SUBDIR+=       fgen
1.37      gmcgarry  130: .endif
                    131:
1.85      jmc       132: .if ${MACHINE} == "amiga"
                    133: SUBDIR+=       amiga-elf2bb
                    134: SUBDIR+=       amiga-txlt
                    135: .endif
                    136:
1.86      jmc       137: .if ${MACHINE} == "hp300"
                    138: SUBDIR+=       hp300-mkboot
                    139: .endif
                    140:
1.143     phx       141: .if ${MACHINE} == "evbarm" || ${MACHINE} == "evbmips" || \
                    142:     ${MACHINE} == "evbppc" || ${MACHINE} == "sandpoint"
1.139     jmcneill  143: SUBDIR+=       mkubootimage
                    144: .endif
                    145:
1.66      lukem     146: check_MKTOOLS: .PHONY .NOTMAIN
1.19      jmc       147: .if ${MKTOOLS:Uyes} == "no"
1.17      tv        148:        @echo '*** WARNING: "MKTOOLS" is set to "no"; this will prevent building and'
                    149:        @echo '*** updating your host toolchain.  This should be used only as a'
                    150:        @echo '*** temporary workaround for toolchain problems, as it will result'
1.23      wiz       151:        @echo '*** in version skew and build errors over time!'
1.18      jmc       152: .endif
1.17      tv        153:
1.66      lukem     154: .if ${MKTOOLS:Uyes} == "no" || ${USETOOLS} != "yes"    # {
1.67      lukem     155: realall realdepend install: check_MKTOOLS
1.66      lukem     156:
1.17      tv        157: .for dir in ${SUBDIR:N.WAIT}
                    158: all-${dir} depend-${dir} dependall-${dir} install-${dir}:
                    159:        @true
                    160: .endfor
1.66      lukem     161: .endif                                                 # }
1.1       tv        162:
                    163: .include <bsd.subdir.mk>
1.11      tv        164: .include <bsd.obj.mk>
1.16      tv        165:
1.102     tron      166: .if !defined(PREVIOUSTOOLDIR)
                    167: .  if exists(PREVIOUSTOOLDIR)
1.66      lukem     168: PREVIOUSTOOLDIR!=      cat PREVIOUSTOOLDIR
1.102     tron      169: .  else
1.66      lukem     170: PREVIOUSTOOLDIR=
1.102     tron      171: .  endif
1.66      lukem     172: .endif
                    173:
                    174: CLEANFILES+=   PREVIOUSTOOLDIR
                    175:
1.101     tron      176: realall realdepend: .MAKE
1.107     apb       177: .if !empty(PREVIOUSTOOLDIR) && "${PREVIOUSTOOLDIR}" != "${TOOLDIR}"
1.66      lukem     178:        @echo "*** WARNING: TOOLDIR has moved?"
                    179:        @echo "*** PREVIOUSTOOLDIR '${PREVIOUSTOOLDIR}'"
                    180:        @echo "***     !=  TOOLDIR '${TOOLDIR}'"
                    181:        @echo "*** Cleaning mis-matched tools"
                    182:        rm -f PREVIOUSTOOLDIR
1.106     freza     183:        (cd ${.CURDIR} && ${MAKE} PREVIOUSTOOLDIR=${TOOLDIR} cleandir)
1.66      lukem     184: .endif
1.102     tron      185:        echo ${TOOLDIR} >PREVIOUSTOOLDIR
1.66      lukem     186:
1.40      tv        187: # For each .WAIT point, make sure the immediately preceding target is
                    188: # installed before building anything after that point.
1.109     dsl       189: # (dsl: which means that with: 'a b .WAIT c' the build of 'c' waits for the
                    190: # install of 'b', but not the install of 'a'.)
1.36      pk        191: #
                    192: # We use the "internal" targets and dependencies generated by <bsd.subdir.mk>
                    193: # to achieve this. These targets look like:
                    194: #      subdir-all:     all-dir1     [.WAIT] all-dir2     etc..
                    195: #      subdir-install: install-dir1 [.WAIT] install-dir2 etc..
                    196: # and so on for each element in ${TARGETS}, with .WAIT sources inserted at
                    197: # places corresponding to the .WAITs in our $SUBDIR variable.
                    198: #
                    199: # Also, since we're now mixing `install' with `all' and `depend' targets
                    200: # an order relationship between those in each individual subdirectory
                    201: # must be established.
                    202: #
1.40      tv        203: _deps:=
                    204: _prev:=
                    205:
1.123     apb       206: .for d in ${SUBDIR}                            # {
1.16      tv        207: _this:=                ${d}
1.40      tv        208:
1.123     apb       209: .if ${_this} == ".WAIT"                                # {
1.36      pk        210:
                    211: # setup dependency to apply to all/depend targets in the next group
1.40      tv        212: _deps:=                ${_deps} ${_prev:S/^/install-/}
                    213:
                    214: # if we're building *only* individual targets (i.e. "dependall-yacc"),
                    215: # make sure prerequisite tools build before installing
1.109     dsl       216: # XXX: dsl: this is likely to generate a dependency loop since there is
                    217: # a .ORDER releation between the nodes as well.
                    218: .if !make(all) && !make(dependall) && !make(install)
1.40      tv        219: install-${_prev}: dependall-${_prev}
                    220: .endif
1.36      pk        221:
1.123     apb       222: .else # ${_this} != ".WAIT"                    # } {
1.36      pk        223:
1.109     dsl       224: # order depend/all/install targets for ${d} subdir.
                    225: .ORDER: depend-${d} all-${d} dependall-${d} install-${d}
1.40      tv        226:
1.106     freza     227: # prevent cleandir in real{all,depend} from interfering with subdir makes
                    228: .ORDER: realdepend dependall-${d}
                    229: .ORDER: realdepend depend-${d}
                    230: .ORDER: realall all-${d}
                    231:
1.40      tv        232: # make all/depend-${d} dependent on list of install targets
                    233: depend-${d} all-${d} dependall-${d}: ${_deps}
1.36      pk        234:
1.123     apb       235: .endif # ${_this} != ".WAIT"                   # }
1.40      tv        236:
                    237: # stash current name in case the next entry is .WAIT
                    238: _prev:=                ${d}
1.123     apb       239: .endfor                                                # }
1.69      tron      240:
                    241: cleandir:
                    242:        rm -f ${CLEANFILES}

CVSweb <webmaster@jp.NetBSD.org>