xref: /dflybsd-src/contrib/bmake/mk/sys/NetBSD.mk (revision 9e7ae5a0527a977cab412aede3a532cfe2903bbb)
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