15f1e34d9SAlexandre Perrin# $NetBSD: sys.mk,v 1.66.2.1 2002/06/05 03:31:01 lukem Exp $ 25f1e34d9SAlexandre Perrin# @(#)sys.mk 8.2 (Berkeley) 3/21/94 35f1e34d9SAlexandre Perrin 4ca58f742SDaniel FojtOS ?= NetBSD 55f1e34d9SAlexandre Perrinunix ?= We run ${OS}. 65f1e34d9SAlexandre Perrin 75f1e34d9SAlexandre Perrin.if !defined(MAKE_VERSION) 85f1e34d9SAlexandre Perrin# we are running native make 95f1e34d9SAlexandre Perrin# which defined MAKE_VERSION between 20010609 and 20090324 105f1e34d9SAlexandre Perrin# so we can make a rough guess 115f1e34d9SAlexandre Perrin.if defined(.MAKE.LEVEL) 12ca58f742SDaniel FojtMAKE_VERSION ?= 20090908 135f1e34d9SAlexandre Perrin.elif defined(.MAKE.MAKEFILES) 145f1e34d9SAlexandre Perrin# introduced 20071008 15ca58f742SDaniel FojtMAKE_VERSION ?= 20090324 165f1e34d9SAlexandre Perrin.else 175f1e34d9SAlexandre Perrin# this just before when MAKE_VERSION was introduced 18ca58f742SDaniel FojtMAKE_VERSION ?= 20010606 195f1e34d9SAlexandre Perrin.endif 205f1e34d9SAlexandre Perrin.endif 215f1e34d9SAlexandre Perrin 22f445c897SJohn Marino.SUFFIXES: .out .a .ln .o .s .S .c ${CXX_SUFFIXES} .F .f .r .y .l .cl .p .h 235f1e34d9SAlexandre Perrin.SUFFIXES: .sh .m4 245f1e34d9SAlexandre Perrin 255f1e34d9SAlexandre Perrin.LIBS: .a 265f1e34d9SAlexandre Perrin 275f1e34d9SAlexandre PerrinAR ?= ar 28*6eef5f0cSAntonio Huete JimenezARFLAGS ?= r 295f1e34d9SAlexandre PerrinRANLIB ?= ranlib 305f1e34d9SAlexandre Perrin 315f1e34d9SAlexandre PerrinAS ?= as 325f1e34d9SAlexandre PerrinAFLAGS ?= 335f1e34d9SAlexandre PerrinCOMPILE.s ?= ${CC} ${AFLAGS} -c 345f1e34d9SAlexandre PerrinLINK.s ?= ${CC} ${AFLAGS} ${LDFLAGS} 355f1e34d9SAlexandre PerrinCOMPILE.S ?= ${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp 365f1e34d9SAlexandre PerrinLINK.S ?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS} 375f1e34d9SAlexandre Perrin 385f1e34d9SAlexandre PerrinCC ?= cc 395f1e34d9SAlexandre Perrin 405f1e34d9SAlexandre Perrin# need to make sure this is set 415f1e34d9SAlexandre PerrinMACHINE_ARCH.${MACHINE} ?= ${MACHINE} 425f1e34d9SAlexandre Perrin.if empty(MACHINE_ARCH) 43ca58f742SDaniel FojtMACHINE_ARCH ?= ${MACHINE_ARCH.${MACHINE}} 445f1e34d9SAlexandre Perrin.endif 455f1e34d9SAlexandre Perrin 465f1e34d9SAlexandre Perrin# 475f1e34d9SAlexandre Perrin# CPU model, derived from MACHINE_ARCH 485f1e34d9SAlexandre Perrin# 49ca58f742SDaniel FojtMACHINE_CPU ?= ${MACHINE_ARCH:C/mipse[bl]/mips/:C/mips64e[bl]/mips/:C/sh3e[bl]/sh3/:S/m68000/m68k/:S/armeb/arm/} 505f1e34d9SAlexandre Perrin 515f1e34d9SAlexandre Perrin.if ${MACHINE_CPU} == "alpha" || \ 525f1e34d9SAlexandre Perrin ${MACHINE_CPU} == "arm" || \ 535f1e34d9SAlexandre Perrin ${MACHINE_CPU} == "i386" || \ 545f1e34d9SAlexandre Perrin ${MACHINE_CPU} == "m68k" || \ 555f1e34d9SAlexandre Perrin ${MACHINE_CPU} == "mips" || \ 565f1e34d9SAlexandre Perrin ${MACHINE_CPU} == "powerpc" || \ 575f1e34d9SAlexandre Perrin ${MACHINE_CPU} == "sparc" || \ 585f1e34d9SAlexandre Perrin ${MACHINE_CPU} == "vax" 595f1e34d9SAlexandre PerrinDBG ?= -O2 605f1e34d9SAlexandre Perrin.elif ${MACHINE_ARCH} == "x86_64" 615f1e34d9SAlexandre PerrinDBG ?= 625f1e34d9SAlexandre Perrin.elif ${MACHINE_ARCH} == "sparc64" 635f1e34d9SAlexandre PerrinDBG ?= -O -ffixed-g4 #Hack for embedany memory model compatibility 645f1e34d9SAlexandre Perrin.else 655f1e34d9SAlexandre PerrinDBG ?= -O 665f1e34d9SAlexandre Perrin.endif 675f1e34d9SAlexandre PerrinCFLAGS ?= ${DBG} 685f1e34d9SAlexandre PerrinCOMPILE.c ?= ${CC} ${CFLAGS} ${CPPFLAGS} -c 695f1e34d9SAlexandre PerrinLINK.c ?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} 705f1e34d9SAlexandre Perrin 715f1e34d9SAlexandre PerrinCXX ?= c++ 725f1e34d9SAlexandre PerrinCXXFLAGS ?= ${CFLAGS} 735f1e34d9SAlexandre PerrinCOMPILE.cc ?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c 745f1e34d9SAlexandre PerrinLINK.cc ?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} 755f1e34d9SAlexandre Perrin 765f1e34d9SAlexandre PerrinOBJC ?= ${CC} 775f1e34d9SAlexandre PerrinOBJCFLAGS ?= ${CFLAGS} 785f1e34d9SAlexandre PerrinCOMPILE.m ?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c 795f1e34d9SAlexandre PerrinLINK.m ?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} 805f1e34d9SAlexandre Perrin 815f1e34d9SAlexandre PerrinCPP ?= cpp 825f1e34d9SAlexandre PerrinCPPFLAGS ?= 835f1e34d9SAlexandre Perrin 845f1e34d9SAlexandre PerrinFC ?= f77 855f1e34d9SAlexandre PerrinFFLAGS ?= -O 865f1e34d9SAlexandre PerrinRFLAGS ?= 875f1e34d9SAlexandre PerrinCOMPILE.f ?= ${FC} ${FFLAGS} -c 885f1e34d9SAlexandre PerrinLINK.f ?= ${FC} ${FFLAGS} ${LDFLAGS} 895f1e34d9SAlexandre PerrinCOMPILE.F ?= ${FC} ${FFLAGS} ${CPPFLAGS} -c 905f1e34d9SAlexandre PerrinLINK.F ?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} 915f1e34d9SAlexandre PerrinCOMPILE.r ?= ${FC} ${FFLAGS} ${RFLAGS} -c 925f1e34d9SAlexandre PerrinLINK.r ?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} 935f1e34d9SAlexandre Perrin 945f1e34d9SAlexandre PerrinINSTALL ?= install 955f1e34d9SAlexandre Perrin 965f1e34d9SAlexandre PerrinLEX ?= lex 975f1e34d9SAlexandre PerrinLFLAGS ?= 985f1e34d9SAlexandre PerrinLEX.l ?= ${LEX} ${LFLAGS} 995f1e34d9SAlexandre Perrin 1005f1e34d9SAlexandre PerrinLD ?= ld 1015f1e34d9SAlexandre PerrinLDFLAGS ?= 1025f1e34d9SAlexandre Perrin 1035f1e34d9SAlexandre PerrinLINT ?= lint 1045f1e34d9SAlexandre PerrinLINTFLAGS ?= -chapbxzF 1055f1e34d9SAlexandre Perrin 1065f1e34d9SAlexandre PerrinLORDER ?= lorder 1075f1e34d9SAlexandre Perrin 1085f1e34d9SAlexandre PerrinNM ?= nm 1095f1e34d9SAlexandre Perrin 1105f1e34d9SAlexandre PerrinPC ?= pc 1115f1e34d9SAlexandre PerrinPFLAGS ?= 1125f1e34d9SAlexandre PerrinCOMPILE.p ?= ${PC} ${PFLAGS} ${CPPFLAGS} -c 1135f1e34d9SAlexandre PerrinLINK.p ?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} 1145f1e34d9SAlexandre Perrin 1155f1e34d9SAlexandre PerrinSIZE ?= size 1165f1e34d9SAlexandre Perrin 1175f1e34d9SAlexandre PerrinTSORT ?= tsort -q 1185f1e34d9SAlexandre Perrin 1195f1e34d9SAlexandre PerrinYACC ?= yacc 1205f1e34d9SAlexandre PerrinYFLAGS ?= 1215f1e34d9SAlexandre PerrinYACC.y ?= ${YACC} ${YFLAGS} 1225f1e34d9SAlexandre Perrin 1235f1e34d9SAlexandre Perrin# C 1245f1e34d9SAlexandre Perrin.c: 1255f1e34d9SAlexandre Perrin ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 1265f1e34d9SAlexandre Perrin.c.o: 1275f1e34d9SAlexandre Perrin ${COMPILE.c} ${.IMPSRC} 1285f1e34d9SAlexandre Perrin.c.a: 1295f1e34d9SAlexandre Perrin ${COMPILE.c} ${.IMPSRC} 1305f1e34d9SAlexandre Perrin ${AR} ${ARFLAGS} $@ $*.o 1315f1e34d9SAlexandre Perrin rm -f $*.o 1325f1e34d9SAlexandre Perrin.c.ln: 1335f1e34d9SAlexandre Perrin ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} 1345f1e34d9SAlexandre Perrin 1355f1e34d9SAlexandre Perrin# C++ 136f445c897SJohn Marino${CXX_SUFFIXES}: 1375f1e34d9SAlexandre Perrin ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 138f445c897SJohn Marino${CXX_SUFFIXES:%=%.o}: 1395f1e34d9SAlexandre Perrin ${COMPILE.cc} ${.IMPSRC} 140f445c897SJohn Marino${CXX_SUFFIXES:%=%.a}: 1415f1e34d9SAlexandre Perrin ${COMPILE.cc} ${.IMPSRC} 1425f1e34d9SAlexandre Perrin ${AR} ${ARFLAGS} $@ $*.o 1435f1e34d9SAlexandre Perrin rm -f $*.o 1445f1e34d9SAlexandre Perrin 1455f1e34d9SAlexandre Perrin# Fortran/Ratfor 1465f1e34d9SAlexandre Perrin.f: 1475f1e34d9SAlexandre Perrin ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 1485f1e34d9SAlexandre Perrin.f.o: 1495f1e34d9SAlexandre Perrin ${COMPILE.f} ${.IMPSRC} 1505f1e34d9SAlexandre Perrin.f.a: 1515f1e34d9SAlexandre Perrin ${COMPILE.f} ${.IMPSRC} 1525f1e34d9SAlexandre Perrin ${AR} ${ARFLAGS} $@ $*.o 1535f1e34d9SAlexandre Perrin rm -f $*.o 1545f1e34d9SAlexandre Perrin 1555f1e34d9SAlexandre Perrin.F: 1565f1e34d9SAlexandre Perrin ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 1575f1e34d9SAlexandre Perrin.F.o: 1585f1e34d9SAlexandre Perrin ${COMPILE.F} ${.IMPSRC} 1595f1e34d9SAlexandre Perrin.F.a: 1605f1e34d9SAlexandre Perrin ${COMPILE.F} ${.IMPSRC} 1615f1e34d9SAlexandre Perrin ${AR} ${ARFLAGS} $@ $*.o 1625f1e34d9SAlexandre Perrin rm -f $*.o 1635f1e34d9SAlexandre Perrin 1645f1e34d9SAlexandre Perrin.r: 1655f1e34d9SAlexandre Perrin ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 1665f1e34d9SAlexandre Perrin.r.o: 1675f1e34d9SAlexandre Perrin ${COMPILE.r} ${.IMPSRC} 1685f1e34d9SAlexandre Perrin.r.a: 1695f1e34d9SAlexandre Perrin ${COMPILE.r} ${.IMPSRC} 1705f1e34d9SAlexandre Perrin ${AR} ${ARFLAGS} $@ $*.o 1715f1e34d9SAlexandre Perrin rm -f $*.o 1725f1e34d9SAlexandre Perrin 1735f1e34d9SAlexandre Perrin# Pascal 1745f1e34d9SAlexandre Perrin.p: 1755f1e34d9SAlexandre Perrin ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 1765f1e34d9SAlexandre Perrin.p.o: 1775f1e34d9SAlexandre Perrin ${COMPILE.p} ${.IMPSRC} 1785f1e34d9SAlexandre Perrin.p.a: 1795f1e34d9SAlexandre Perrin ${COMPILE.p} ${.IMPSRC} 1805f1e34d9SAlexandre Perrin ${AR} ${ARFLAGS} $@ $*.o 1815f1e34d9SAlexandre Perrin rm -f $*.o 1825f1e34d9SAlexandre Perrin 1835f1e34d9SAlexandre Perrin# Assembly 1845f1e34d9SAlexandre Perrin.s: 1855f1e34d9SAlexandre Perrin ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 1865f1e34d9SAlexandre Perrin.s.o: 1875f1e34d9SAlexandre Perrin ${COMPILE.s} ${.IMPSRC} 1885f1e34d9SAlexandre Perrin.s.a: 1895f1e34d9SAlexandre Perrin ${COMPILE.s} ${.IMPSRC} 1905f1e34d9SAlexandre Perrin ${AR} ${ARFLAGS} $@ $*.o 1915f1e34d9SAlexandre Perrin rm -f $*.o 1925f1e34d9SAlexandre Perrin.S: 1935f1e34d9SAlexandre Perrin ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 1945f1e34d9SAlexandre Perrin.S.o: 1955f1e34d9SAlexandre Perrin ${COMPILE.S} ${.IMPSRC} 1965f1e34d9SAlexandre Perrin.S.a: 1975f1e34d9SAlexandre Perrin ${COMPILE.S} ${.IMPSRC} 1985f1e34d9SAlexandre Perrin ${AR} ${ARFLAGS} $@ $*.o 1995f1e34d9SAlexandre Perrin rm -f $*.o 2005f1e34d9SAlexandre Perrin 2015f1e34d9SAlexandre Perrin# Lex 2025f1e34d9SAlexandre Perrin.l: 2035f1e34d9SAlexandre Perrin ${LEX.l} ${.IMPSRC} 2045f1e34d9SAlexandre Perrin ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll 2055f1e34d9SAlexandre Perrin rm -f lex.yy.c 2065f1e34d9SAlexandre Perrin.l.c: 2075f1e34d9SAlexandre Perrin ${LEX.l} ${.IMPSRC} 2085f1e34d9SAlexandre Perrin mv lex.yy.c ${.TARGET} 2095f1e34d9SAlexandre Perrin.l.o: 2105f1e34d9SAlexandre Perrin ${LEX.l} ${.IMPSRC} 2115f1e34d9SAlexandre Perrin ${COMPILE.c} -o ${.TARGET} lex.yy.c 2125f1e34d9SAlexandre Perrin rm -f lex.yy.c 2135f1e34d9SAlexandre Perrin 2145f1e34d9SAlexandre Perrin# Yacc 2155f1e34d9SAlexandre Perrin.y: 2165f1e34d9SAlexandre Perrin ${YACC.y} ${.IMPSRC} 2175f1e34d9SAlexandre Perrin ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} 2185f1e34d9SAlexandre Perrin rm -f y.tab.c 2195f1e34d9SAlexandre Perrin.y.c: 2205f1e34d9SAlexandre Perrin ${YACC.y} ${.IMPSRC} 2215f1e34d9SAlexandre Perrin mv y.tab.c ${.TARGET} 2225f1e34d9SAlexandre Perrin.y.o: 2235f1e34d9SAlexandre Perrin ${YACC.y} ${.IMPSRC} 2245f1e34d9SAlexandre Perrin ${COMPILE.c} -o ${.TARGET} y.tab.c 2255f1e34d9SAlexandre Perrin rm -f y.tab.c 2265f1e34d9SAlexandre Perrin 2275f1e34d9SAlexandre Perrin# Shell 2285f1e34d9SAlexandre Perrin.sh: 2295f1e34d9SAlexandre Perrin rm -f ${.TARGET} 2305f1e34d9SAlexandre Perrin cp ${.IMPSRC} ${.TARGET} 231*6eef5f0cSAntonio Huete Jimenez chmod a+x ${.TARGET} 232