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

Annotation of src/share/mk/bsd.sys.mk, Revision 1.207

1.207   ! uwe         1: #      $NetBSD: bsd.sys.mk,v 1.206 2011/07/08 03:29:52 mrg Exp $
1.1       christos    2: #
1.58      tv          3: # Build definitions used for NetBSD source tree builds.
1.2       cgd         4:
1.94      lukem       5: .if !defined(_BSD_SYS_MK_)
                      6: _BSD_SYS_MK_=1
1.96      lukem       7:
1.193     joerg       8: .if ${MKREPRO:Uno} == "yes"
                      9: CPPFLAGS+=     -Wp,-iremap,${NETBSDSRCDIR}:/usr/src
                     10: CPPFLAGS+=     -Wp,-iremap,${DESTDIR}/:/
                     11: .endif
                     12:
1.194     christos   13: # Enable c99 mode by default.
                     14: # This has the side effect of complaining for missing prototypes
                     15: # implicit type declarations and missing return statements.
1.204     mrg        16: .if defined(HAVE_GCC)
1.194     christos   17: CFLAGS+=       -std=gnu99
                     18: .endif
                     19:
1.35      christos   20: .if defined(WARNS)
1.201     joerg      21: CFLAGS+=       ${${ACTIVE_CC} == "clang":? -Wno-sign-compare -Wno-pointer-sign :}
1.35      christos   22: .if ${WARNS} > 0
1.60      tv         23: CFLAGS+=       -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith
                     24: #CFLAGS+=      -Wmissing-declarations -Wredundant-decls -Wnested-externs
1.82      thorpej    25: # Add -Wno-sign-compare.  -Wsign-compare is included in -Wall as of GCC 3.3,
1.95      christos   26: # but our sources aren't up for it yet. Also, add -Wno-traditional because
                     27: # gcc includes #elif in the warnings, which is 'this code will not compile
                     28: # in a traditional environment' warning, as opposed to 'this code behaves
                     29: # differently in traditional and ansi environments' which is the warning
                     30: # we wanted, and now we don't get anymore.
1.195     joerg      31: CFLAGS+=       -Wno-sign-compare
                     32: CFLAGS+=       ${${ACTIVE_CC} != "clang":? -Wno-traditional :}
1.164     lukem      33: .if !defined(NOGCCERROR)
                     34: # Set assembler warnings to be fatal
                     35: CFLAGS+=       -Wa,--fatal-warnings
                     36: .endif
1.159     lukem      37: # Set linker warnings to be fatal
1.162     tsutsui    38: # XXX no proper way to avoid "FOO is a patented algorithm" warnings
                     39: # XXX on linking static libs
                     40: .if (!defined(MKPIC) || ${MKPIC} != "no") && \
                     41:     (!defined(LDSTATIC) || ${LDSTATIC} != "-static")
1.205     mrg        42: # XXX there are some strange problems not yet resolved
                     43: . if !defined(HAVE_GCC) || ${HAVE_GCC} != 45
1.159     lukem      44: LDFLAGS+=      -Wl,--fatal-warnings
1.205     mrg        45: . endif
1.119     lukem      46: .endif
1.162     tsutsui    47: .endif
1.35      christos   48: .if ${WARNS} > 1
1.79      msaitoh    49: CFLAGS+=       -Wreturn-type -Wswitch -Wshadow
1.56      lukem      50: .endif
                     51: .if ${WARNS} > 2
1.60      tv         52: CFLAGS+=       -Wcast-qual -Wwrite-strings
1.137     christos   53: CFLAGS+=       -Wextra -Wno-unused-parameter
1.201     joerg      54: # Readd -Wno-sign-compare to override -Wextra with clang
                     55: CFLAGS+=       -Wno-sign-compare
1.123     he         56: CXXFLAGS+=     -Wabi
                     57: CXXFLAGS+=     -Wold-style-cast
1.122     he         58: CXXFLAGS+=     -Wctor-dtor-privacy -Wnon-virtual-dtor -Wreorder \
1.200     joerg      59:                -Wno-deprecated -Woverloaded-virtual -Wsign-promo -Wsynth
                     60: CXXFLAGS+=     ${${ACTIVE_CXX} == "gcc":? -Wno-non-template-friend -Wno-pmf-conversions :}
1.35      christos   61: .endif
1.204     mrg        62: .if ${WARNS} > 3 && defined(HAVE_GCC)
1.180     lukem      63: CFLAGS+=       -Wsign-compare
1.201     joerg      64: CFLAGS+=       ${${ACTIVE_CC} == "clang":? -Wpointer-sign :}
1.115     matt       65: .endif
1.207   ! uwe        66: .if (defined(HAVE_GCC) && ${HAVE_GCC} == 45 \
        !            67:      && (${MACHINE_ARCH} == "sh3eb" || ${MACHINE_ARCH} == "sh3el"))
        !            68: # XXX GCC 4.5 for sh3 (which we compile with -Os) is extra noisy for
        !            69: # cases it should be better with
1.206     mrg        70: CFLAGS+=       -Wno-uninitialized
                     71: .endif
1.9       christos   72: .endif
1.41      sommerfe   73:
1.199     joerg      74: CWARNFLAGS+=   ${CWARNFLAGS.${ACTIVE_CC}}
                     75:
1.61      tv         76: CPPFLAGS+=     ${AUDIT:D-D__AUDIT__}
1.202     joerg      77: _NOWERROR=     ${defined(NOGCCERROR) || (${ACTIVE_CC} == "clang" && defined(NOCLANGERROR)):?yes:no}
1.203     joerg      78: CFLAGS+=       ${${_NOWERROR} == "no" :?-Werror:} ${CWARNFLAGS}
1.53      tv         79: LINTFLAGS+=    ${DESTDIR:D-d ${DESTDIR}/usr/include}
1.47      simonb     80:
1.181     skrll      81: .if (${MACHINE_ARCH} == "alpha") || \
                     82:     (${MACHINE_ARCH} == "hppa") || \
                     83:     (${MACHINE_ARCH} == "ia64") || \
1.186     uebayasi   84:     (${MACHINE_ARCH} == "mipsel") || (${MACHINE_ARCH} == "mipseb") || \
                     85:     (${MACHINE_ARCH} == "mips64el") || (${MACHINE_ARCH} == "mips64eb")
1.150     tls        86: HAS_SSP=       no
                     87: .else
                     88: HAS_SSP=       yes
                     89: .endif
1.145     tls        90:
1.197     joerg      91: .if ${USE_FORT:Uno} != "no"
1.150     tls        92: USE_SSP?=      yes
1.142     tls        93: .if !defined(KERNSRCDIR) && !defined(KERN) # not for kernels nor kern modules
1.151     tls        94: CPPFLAGS+=     -D_FORTIFY_SOURCE=2
1.142     tls        95: .endif
                     96: .endif
1.138     christos   97:
1.197     joerg      98: .if (${USE_SSP:Uno} != "no") && (${BINDIR:Ux} != "/usr/mdec")
1.150     tls        99: .if ${HAS_SSP} == "yes"
1.196     joerg     100: COPTS+=        -fstack-protector -Wstack-protector
                    101: COPTS+=        ${${ACTIVE_CC} == "clang":? -mllvm -stack-protector-buffer-size=1 :}
                    102: COPTS+=        ${${ACTIVE_CC} == "gcc":? --param ssp-buffer-size=1 :}
1.143     tls       103: .endif
1.145     tls       104: .endif
                    105:
1.197     joerg     106: .if ${MKSOFTFLOAT:Uno} != "no"
1.47      simonb    107: COPTS+=                -msoft-float
                    108: FOPTS+=                -msoft-float
1.70      ross      109: .endif
                    110:
1.197     joerg     111: .if ${MKIEEEFP:Uno} != "no"
1.70      ross      112: .if ${MACHINE_ARCH} == "alpha"
                    113: CFLAGS+=       -mieee
                    114: FFLAGS+=       -mieee
                    115: .endif
1.81      mrg       116: .endif
                    117:
                    118: .if ${MACHINE} == "sparc64" && ${MACHINE_ARCH} == "sparc"
                    119: CFLAGS+=       -Wa,-Av8plus
1.3       scottr    120: .endif
1.87      thorpej   121:
1.189     mrg       122: .if !defined(NOGCCERROR)
1.188     matt      123: .if (${MACHINE_ARCH} == "mips64el") || (${MACHINE_ARCH} == "mips64eb")
                    124: CPUFLAGS+=     -Wa,--fatal-warnings
                    125: .endif
1.189     mrg       126: .endif
1.188     matt      127:
                    128: #.if ${MACHINE} == "sbmips"
                    129: #CFLAGS+=      -mips64 -mtune=sb1
                    130: #.endif
                    131:
                    132: #.if (${MACHINE_ARCH} == "mips64el" || ${MACHINE_ARCH} == "mips64eb") && \
                    133: #    (defined(MKPIC) && ${MKPIC} == "no")
                    134: #CPUFLAGS+=    -mno-abicalls -fno-PIC
                    135: #.endif
1.87      thorpej   136: CFLAGS+=       ${CPUFLAGS}
1.114     simonb    137: AFLAGS+=       ${CPUFLAGS}
1.4       thorpej   138:
1.192     pooka     139: .if !defined(LDSTATIC) || ${LDSTATIC} != "-static"
1.174     christos  140: # Position Independent Executable flags
1.175     christos  141: PIE_CFLAGS?=        -fPIC -DPIC
1.174     christos  142: PIE_LDFLAGS?=       -Wl,-pie -shared-libgcc
1.175     christos  143: PIE_AFLAGS?=       -fPIC -DPIC
1.192     pooka     144: .endif
1.174     christos  145:
1.4       thorpej   146: # Helpers for cross-compiling
                    147: HOST_CC?=      cc
                    148: HOST_CFLAGS?=  -O
                    149: HOST_COMPILE.c?=${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} -c
1.124     jwise     150: HOST_COMPILE.cc?=      ${HOST_CXX} ${HOST_CXXFLAGS} ${HOST_CPPFLAGS} -c
                    151: .if defined(HOSTPROG_CXX)
                    152: HOST_LINK.c?=  ${HOST_CXX} ${HOST_CXXFLAGS} ${HOST_CPPFLAGS} ${HOST_LDFLAGS}
                    153: .else
1.4       thorpej   154: HOST_LINK.c?=  ${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} ${HOST_LDFLAGS}
1.124     jwise     155: .endif
1.49      tv        156:
                    157: HOST_CXX?=     c++
                    158: HOST_CXXFLAGS?=        -O
1.4       thorpej   159:
                    160: HOST_CPP?=     cpp
                    161: HOST_CPPFLAGS?=
                    162:
                    163: HOST_LD?=      ld
                    164: HOST_LDFLAGS?=
1.60      tv        165:
                    166: HOST_AR?=      ar
                    167: HOST_RANLIB?=  ranlib
1.108     matt      168:
                    169: HOST_LN?=      ln
1.84      christos  170:
1.178     apb       171: # HOST_SH must be an absolute path
                    172: HOST_SH?=      /bin/sh
1.28      tv        173:
1.77      simonb    174: ELF2ECOFF?=    elf2ecoff
1.74      lukem     175: MKDEP?=                mkdep
                    176: OBJCOPY?=      objcopy
1.117     riz       177: OBJDUMP?=      objdump
1.139     christos  178: PAXCTL?=       paxctl
1.74      lukem     179: STRIP?=                strip
1.109     matt      180:
1.179     apb       181: # TOOL_* variables are defined in bsd.own.mk
1.13      lukem     182:
1.124     jwise     183: .SUFFIXES:     .o .ln .lo .c .cc .cpp .cxx .C .m ${YHEADER:D.h}
1.93      lukem     184:
                    185: # C
                    186: .c.o:
1.104     lukem     187:        ${_MKTARGET_COMPILE}
1.93      lukem     188:        ${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
1.190     darran    189: .if defined(CTFCONVERT)
                    190:        ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
                    191: .endif
1.112     lukem     192:
1.93      lukem     193: .c.ln:
1.104     lukem     194:        ${_MKTARGET_COMPILE}
1.111     lukem     195:        ${LINT} ${LINTFLAGS} \
                    196:            ${CPPFLAGS:C/-([IDU])[  ]*/-\1/Wg:M-[IDU]*} \
                    197:            ${CPPFLAGS.${.IMPSRC:T}:C/-([IDU])[  ]*/-\1/Wg:M-[IDU]*} \
                    198:            -i ${.IMPSRC}
1.29      tv        199:
1.103     lukem     200: # C++
                    201: .cc.o .cpp.o .cxx.o .C.o:
1.104     lukem     202:        ${_MKTARGET_COMPILE}
1.103     lukem     203:        ${COMPILE.cc} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
                    204:
1.13      lukem     205: # Objective C
                    206: # (Defined here rather than in <sys.mk> because `.m' is not just
                    207: #  used for Objective C source)
                    208: .m.o:
1.104     lukem     209:        ${_MKTARGET_COMPILE}
1.129     mrg       210:        ${COMPILE.m} ${OBJCOPTS} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC}
1.190     darran    211: .if defined(CTFCONVERT)
                    212:        ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
                    213: .endif
1.29      tv        214:
                    215: # Host-compiled C objects
1.76      bjh21     216: # The intermediate step is necessary for Sun CC, which objects to calling
                    217: # object files anything but *.o
1.29      tv        218: .c.lo:
1.104     lukem     219:        ${_MKTARGET_COMPILE}
1.110     lukem     220:        ${HOST_COMPILE.c} -o ${.TARGET}.o ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
1.76      bjh21     221:        mv ${.TARGET}.o ${.TARGET}
1.98      lukem     222:
1.124     jwise     223: # C++
                    224: .cc.lo .cpp.lo .cxx.lo .C.lo:
                    225:        ${_MKTARGET_COMPILE}
                    226:        ${HOST_COMPILE.cc} -o ${.TARGET}.o ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
                    227:        mv ${.TARGET}.o ${.TARGET}
                    228:
1.98      lukem     229: # Assembly
                    230: .s.o:
1.104     lukem     231:        ${_MKTARGET_COMPILE}
1.98      lukem     232:        ${COMPILE.s} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
1.190     darran    233: .if defined(CTFCONVERT)
                    234:        ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
                    235: .endif
1.107     lukem     236:
1.98      lukem     237: .S.o:
1.104     lukem     238:        ${_MKTARGET_COMPILE}
1.98      lukem     239:        ${COMPILE.S} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
1.190     darran    240: .if defined(CTFCONVERT)
                    241:        ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
                    242: .endif
1.13      lukem     243:
1.52      tv        244: # Lex
1.167     christos  245: LFLAGS+=       ${LPREFIX.${.IMPSRC:T}:D-P${LPREFIX.${.IMPSRC:T}}}
                    246: LFLAGS+=       ${LPREFIX:D-P${LPREFIX}}
1.1       christos  247:
                    248: .l.c:
1.104     lukem     249:        ${_MKTARGET_LEX}
1.1       christos  250:        ${LEX.l} -o${.TARGET} ${.IMPSRC}
                    251:
                    252: # Yacc
1.167     christos  253: YFLAGS+=       ${YPREFIX.${.IMPSRC:T}:D-p${YPREFIX.${.IMPSRC:T}}} ${YHEADER.${.IMPSRC:T}:D-d}
1.52      tv        254: YFLAGS+=       ${YPREFIX:D-p${YPREFIX}} ${YHEADER:D-d}
                    255:
1.33      lukem     256: .y.c:
1.104     lukem     257:        ${_MKTARGET_YACC}
1.33      lukem     258:        ${YACC.y} -o ${.TARGET} ${.IMPSRC}
1.55      tv        259:
                    260: .ifdef YHEADER
1.187     christos  261: .if empty(.MAKEFLAGS:M-n)
1.55      tv        262: .y.h: ${.TARGET:.h=.c}
                    263: .endif
1.187     christos  264: .endif
1.64      thorpej   265:
1.94      lukem     266: .endif # !defined(_BSD_SYS_MK_)

CVSweb <webmaster@jp.NetBSD.org>