[BACK]Return to sys.mk CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / share / mk

Annotation of src/share/mk/sys.mk, Revision 1.137

1.137   ! christos    1: #      $NetBSD: sys.mk,v 1.136 2018/07/10 23:25:27 christos Exp $
1.30      mikel       2: #      @(#)sys.mk      8.2 (Berkeley) 3/21/94
1.111     christos    3: #
                      4: # This file contains the basic rules for make(1) and is read first
                      5: # Do not put conditionals that are set on different files here and
                      6: # expect them to work.
1.1       cgd         7:
1.30      mikel       8: unix?=         We run NetBSD.
1.1       cgd         9:
1.80      lukem      10: .SUFFIXES: .a .o .ln .s .S .c .cc .cpp .cxx .C .f .F .r .p .l .y .sh
1.1       cgd        11:
                     12: .LIBS:         .a
                     13:
1.22      christos   14: AR?=           ar
                     15: ARFLAGS?=      rl
                     16: RANLIB?=       ranlib
                     17:
                     18: AS?=           as
                     19: AFLAGS?=
1.106     joerg      20: COMPILE.s?=    ${CC} ${AFLAGS} ${AFLAGS.${<:T}} -c
                     21: LINK.s?=       ${CC} ${AFLAGS} ${AFLAGS.${<:T}} ${LDFLAGS}
1.101     joerg      22: _ASM_TRADITIONAL_CPP=  -x assembler-with-cpp
1.106     joerg      23: COMPILE.S?=    ${CC} ${AFLAGS} ${AFLAGS.${<:T}} ${CPPFLAGS} ${_ASM_TRADITIONAL_CPP} -c
                     24: LINK.S?=       ${CC} ${AFLAGS} ${AFLAGS.${<:T}} ${CPPFLAGS} ${LDFLAGS}
1.22      christos   25:
                     26: CC?=           cc
1.107     chs        27: .if ${MACHINE_ARCH} == "sh3el" || ${MACHINE_ARCH} == "sh3eb"
1.97      uwe        28: # -O2 is too -falign-* zealous for low-memory sh3 machines
                     29: DBG?=  -Os -freorder-blocks
1.107     chs        30: .elif ${MACHINE_ARCH} == "m68k" || ${MACHINE_ARCH} == "m68000"
1.125     tsutsui    31: # -freorder-blocks (enabled by -O2) produces much bigger code
                     32: DBG?=  -O2 -fno-reorder-blocks
1.117     matt       33: .elif ${MACHINE_ARCH} == "coldfire"
                     34: DBG?=  -O1
1.127     matt       35: .elif !empty(MACHINE_ARCH:Maarch64*)
                     36: DBG?=  -O2 ${"${.TARGET:M*.po}" == "":? -fomit-frame-pointer:}
1.44      mycroft    37: .else
1.107     chs        38: DBG?=  -O2
1.44      mycroft    39: .endif
1.130     chs        40: .if ${MKDTRACE:Uno} != "no"
                     41: DTRACE_OPTS?=  -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-ipa-sra -fno-ipa-icf
                     42: .endif
1.57      sjg        43: CFLAGS?=       ${DBG}
1.87      lukem      44: LDFLAGS?=
1.130     chs        45: COMPILE.c?=    ${CC} ${CFLAGS} ${DTRACE_OPTS} ${CPPFLAGS} -c
1.22      christos   46: LINK.c?=       ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
                     47:
1.100     darran     48: # C Type Format data is required for DTrace
1.116     yamt       49: CTFFLAGS       ?=      -g -L VERSION
1.128     chs        50: CTFMFLAGS      ?=      -t -g -L VERSION
1.100     darran     51:
1.41      tv         52: CXX?=          c++
1.133     maya       53: # Strip flags unsupported by C++ compilers
                     54: # Remove -Wsystem-headers because C++ headers aren't clean of warnings
1.132     maya       55: CXXFLAGS?=     ${CFLAGS:N-Wno-traditional:N-Wstrict-prototypes:N-Wmissing-prototypes:N-Wno-pointer-sign:N-ffreestanding:N-std=gnu[0-9][0-9]:N-Wold-style-definition:N-Wno-format-zero-length:N-Wsystem-headers}
1.89      christos   56:
1.135     christos   57: # Use the sources, as the seed... Normalize all paths...
1.98      joerg      58: __ALLSRC1=     ${empty(DESTDIR):?${.ALLSRC}:${.ALLSRC:S|^${DESTDIR}|^destdir|}}
                     59: __ALLSRC2=     ${empty(MAKEOBJDIR):?${__ALLSRC1}:${__ALLSRC1:S|^${MAKEOBJDIR}|^obj|}}
                     60: __ALLSRC3=     ${empty(NETBSDSRCDIR):?${__ALLSRC2}:${__ALLSRC2:S|^${NETBSDSRCDIR}|^src|}}
1.131     christos   61: __ALLSRC4=     ${empty(X11SRCDIR):?${__ALLSRC3}:${__ALLSRC3:S|^${X11SRCDIR}|^xsrc|}}
1.135     christos   62: # Skip paths that contain relative components and can't be normalized, sort..
                     63: __INITSEED=    ${__ALLSRC4:N*/../*:O}
                     64:
                     65: __BUILDSEED=   ${BUILDSEED}/${__INITSEED}/${.TARGET}
1.105     joerg      66: _CXXSEED?=     ${BUILDSEED:D-frandom-seed=${__BUILDSEED:hash}}
1.98      joerg      67:
1.137   ! christos   68: COMPILE.cc?=   ${CXX} ${_CXXSEED} ${CXXFLAGS} ${DTRACE_OPTS} ${CPPFLAGS} -c
        !            69: LINK.cc?=      ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
1.34      lukem      70:
                     71: OBJC?=         ${CC}
                     72: OBJCFLAGS?=    ${CFLAGS}
                     73: COMPILE.m?=    ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c
                     74: LINK.m?=       ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS}
1.3       mycroft    75:
1.22      christos   76: CPP?=          cpp
1.75      lukem      77: CPPFLAGS?=
1.1       cgd        78:
1.22      christos   79: FC?=           f77
1.30      mikel      80: FFLAGS?=       -O
1.22      christos   81: RFLAGS?=
                     82: COMPILE.f?=    ${FC} ${FFLAGS} -c
                     83: LINK.f?=       ${FC} ${FFLAGS} ${LDFLAGS}
                     84: COMPILE.F?=    ${FC} ${FFLAGS} ${CPPFLAGS} -c
                     85: LINK.F?=       ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
                     86: COMPILE.r?=    ${FC} ${FFLAGS} ${RFLAGS} -c
                     87: LINK.r?=       ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
1.29      thorpej    88:
                     89: INSTALL?=      install
1.22      christos   90:
1.79      lukem      91: LD?=           ld
                     92:
1.22      christos   93: LEX?=          lex
                     94: LFLAGS?=
                     95: LEX.l?=                ${LEX} ${LFLAGS}
                     96:
                     97: LINT?=         lint
1.124     christos   98: LINTFLAGS?=    -chapbxzgFS
1.22      christos   99:
1.36      gwr       100: LORDER?=       lorder
                    101:
1.22      christos  102: MAKE?=         make
                    103:
1.36      gwr       104: NM?=           nm
                    105:
1.22      christos  106: PC?=           pc
                    107: PFLAGS?=
                    108: COMPILE.p?=    ${PC} ${PFLAGS} ${CPPFLAGS} -c
                    109: LINK.p?=       ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
                    110:
                    111: SHELL?=                sh
1.36      gwr       112:
                    113: SIZE?=         size
                    114:
                    115: TSORT?=        tsort -q
1.22      christos  116:
                    117: YACC?=         yacc
1.40      tv        118: YFLAGS?=
1.22      christos  119: YACC.y?=       ${YACC} ${YFLAGS}
1.1       cgd       120:
1.15      jtc       121: # C
1.14      jtc       122: .c:
1.15      jtc       123:        ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
1.120     christos  124: # XXX: disable for now
1.126     apb       125: #      ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
1.15      jtc       126: .c.o:
                    127:        ${COMPILE.c} ${.IMPSRC}
1.126     apb       128:        ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
1.15      jtc       129: .c.a:
                    130:        ${COMPILE.c} ${.IMPSRC}
1.76      lukem     131:        ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
                    132:        rm -f ${.PREFIX}.o
1.21      cgd       133: .c.ln:
1.83      lukem     134:        ${LINT} ${LINTFLAGS} \
                    135:            ${CPPFLAGS:C/-([IDU])[  ]*/-\1/Wg:M-[IDU]*} \
                    136:            -i ${.IMPSRC}
1.14      jtc       137:
1.15      jtc       138: # C++
1.55      jdolecek  139: .cc .cpp .cxx .C:
1.15      jtc       140:        ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
1.55      jdolecek  141: .cc.o .cpp.o .cxx.o .C.o:
1.15      jtc       142:        ${COMPILE.cc} ${.IMPSRC}
1.55      jdolecek  143: .cc.a .cpp.a .cxx.a .C.a:
1.15      jtc       144:        ${COMPILE.cc} ${.IMPSRC}
1.76      lukem     145:        ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
                    146:        rm -f ${.PREFIX}.o
1.14      jtc       147:
1.15      jtc       148: # Fortran/Ratfor
                    149: .f:
                    150:        ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
                    151: .f.o:
                    152:        ${COMPILE.f} ${.IMPSRC}
1.126     apb       153:        ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
1.15      jtc       154: .f.a:
                    155:        ${COMPILE.f} ${.IMPSRC}
1.76      lukem     156:        ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
                    157:        rm -f ${.PREFIX}.o
1.14      jtc       158:
1.15      jtc       159: .F:
                    160:        ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
1.126     apb       161:        ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
1.15      jtc       162: .F.o:
                    163:        ${COMPILE.F} ${.IMPSRC}
1.126     apb       164:        ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
1.15      jtc       165: .F.a:
                    166:        ${COMPILE.F} ${.IMPSRC}
1.76      lukem     167:        ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
                    168:        rm -f ${.PREFIX}.o
1.14      jtc       169:
1.15      jtc       170: .r:
                    171:        ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
                    172: .r.o:
                    173:        ${COMPILE.r} ${.IMPSRC}
1.126     apb       174:        ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
1.15      jtc       175: .r.a:
                    176:        ${COMPILE.r} ${.IMPSRC}
1.76      lukem     177:        ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
                    178:        rm -f ${.PREFIX}.o
1.9       jtc       179:
1.15      jtc       180: # Pascal
                    181: .p:
                    182:        ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
1.126     apb       183:        ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
1.1       cgd       184: .p.o:
1.15      jtc       185:        ${COMPILE.p} ${.IMPSRC}
1.126     apb       186:        ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
1.15      jtc       187: .p.a:
                    188:        ${COMPILE.p} ${.IMPSRC}
1.76      lukem     189:        ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
                    190:        rm -f ${.PREFIX}.o
1.1       cgd       191:
1.15      jtc       192: # Assembly
                    193: .s:
                    194:        ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
1.126     apb       195:        ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
1.1       cgd       196: .s.o:
1.27      mycroft   197:        ${COMPILE.s} ${.IMPSRC}
1.126     apb       198:        ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
1.15      jtc       199: .s.a:
                    200:        ${COMPILE.s} ${.IMPSRC}
1.76      lukem     201:        ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
                    202:        rm -f ${.PREFIX}.o
1.15      jtc       203: .S:
                    204:        ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
1.126     apb       205:        ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
1.8       brezak    206: .S.o:
1.27      mycroft   207:        ${COMPILE.S} ${.IMPSRC}
1.126     apb       208:        ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
1.15      jtc       209: .S.a:
                    210:        ${COMPILE.S} ${.IMPSRC}
1.76      lukem     211:        ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
                    212:        rm -f ${.PREFIX}.o
1.1       cgd       213:
1.15      jtc       214: # Lex
                    215: .l:
                    216:        ${LEX.l} ${.IMPSRC}
                    217:        ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
                    218:        rm -f lex.yy.c
                    219: .l.c:
                    220:        ${LEX.l} ${.IMPSRC}
                    221:        mv lex.yy.c ${.TARGET}
1.1       cgd       222: .l.o:
1.15      jtc       223:        ${LEX.l} ${.IMPSRC}
1.75      lukem     224:        ${COMPILE.c} -o ${.TARGET} lex.yy.c
1.126     apb       225:        ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
1.1       cgd       226:        rm -f lex.yy.c
                    227:
1.15      jtc       228: # Yacc
                    229: .y:
                    230:        ${YACC.y} ${.IMPSRC}
                    231:        ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
                    232:        rm -f y.tab.c
1.38      tv        233: .y.c:
1.15      jtc       234:        ${YACC.y} ${.IMPSRC}
1.38      tv        235:        mv y.tab.c ${.TARGET}
1.15      jtc       236: .y.o:
                    237:        ${YACC.y} ${.IMPSRC}
                    238:        ${COMPILE.c} -o ${.TARGET} y.tab.c
1.126     apb       239:        ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
1.1       cgd       240:        rm -f y.tab.c
                    241:
1.15      jtc       242: # Shell
                    243: .sh:
                    244:        rm -f ${.TARGET}
                    245:        cp ${.IMPSRC} ${.TARGET}
1.79      lukem     246:        chmod a+x ${.TARGET}

CVSweb <webmaster@jp.NetBSD.org>