xref: /freebsd/contrib/bmake/mk/sys/SunOS.mk (revision 1d3f2ddc32fc37e4835aa5a51eabc8696c1e8114)
1*1d3f2ddcSSimon J. Gerraty#	$Id: SunOS.mk,v 1.14 2022/03/25 23:43:06 sjg Exp $
23cbdda60SSimon J. Gerraty
33cbdda60SSimon J. Gerraty.if ${.PARSEFILE} == "sys.mk"
43cbdda60SSimon J. Gerraty.include <host-target.mk>
53cbdda60SSimon J. Gerraty
63cbdda60SSimon J. GerratyOS ?=		SunOS.${HOST_OSMAJOR}
73cbdda60SSimon J. Gerratyunix ?=		We run ${OS}.
83cbdda60SSimon J. Gerraty.endif
93cbdda60SSimon J. Gerraty
103cbdda60SSimon J. Gerraty.if ${HOST_OSMAJOR} > 4
113841c287SSimon J. GerratyROOT_GROUP ?=	root
123cbdda60SSimon J. Gerraty
133841c287SSimon J. GerratySHLIB_FULLVERSION  ?= ${SHLIB_MAJOR}
143cbdda60SSimon J. Gerraty
155bcb7424SSimon J. Gerraty# suppress the dependency
163841c287SSimon J. GerratyLIBCRT0 ?= /dev/null
173cbdda60SSimon J. Gerraty
183cbdda60SSimon J. Gerraty.ifndef CC
193cbdda60SSimon J. Gerraty# the PATH below may find an ancient gcc
203cbdda60SSimon J. GerratyCC := ${gcc:L:${M_whence}}
213cbdda60SSimon J. Gerraty.export CC
223cbdda60SSimon J. Gerraty.endif
233cbdda60SSimon J. Gerraty
243cbdda60SSimon J. Gerraty# the stuff in /usr/xpg4/bin is usually more sane.
253841c287SSimon J. GerratyPATH ?=/usr/xpg4/bin:/usr/sbin:/usr/bin:/usr/ucb:/usr/sfw/bin:/opt/gnu/bin:/usr/ccs/bin:/usr/local/bin
263cbdda60SSimon J. Gerraty.export PATH
273cbdda60SSimon J. Gerraty
283841c287SSimon J. GerratyDSHLIBEXT  ?= .so
293841c287SSimon J. GerratyHOST_LIBDIRS  ?= /usr/lib /lib /usr/sfw/lib
303cbdda60SSimon J. Gerraty
313cbdda60SSimon J. Gerraty# no -X
323cbdda60SSimon J. GerratyLD_X=
333cbdda60SSimon J. GerratyLD_x=
343841c287SSimon J. GerratyRANLIB ?=		:
353841c287SSimon J. GerratyCPP ?=		/usr/ccs/lib/cpp
363cbdda60SSimon J. Gerraty.else
373841c287SSimon J. GerratyROOT_GROUP ?=	wheel
383841c287SSimon J. GerratyRANLIB ?=		ranlib
393841c287SSimon J. GerratyCPP ?=		cpp
403cbdda60SSimon J. Gerraty.endif
413cbdda60SSimon J. Gerraty
423cbdda60SSimon J. Gerraty# the rest is common
433cbdda60SSimon J. Gerraty
44e48f47ddSSimon J. Gerraty.SUFFIXES: .out .a .ln .o .c ${CXX_SUFFIXES} .F .f .r .y .l .s .S .cl .p .h .sh .m4
453cbdda60SSimon J. Gerraty
463cbdda60SSimon J. Gerraty.LIBS:		.a
473cbdda60SSimon J. Gerraty
483841c287SSimon J. GerratyAR ?=		ar
49*1d3f2ddcSSimon J. GerratyARFLAGS ?=	r
503cbdda60SSimon J. Gerraty
513841c287SSimon J. GerratyAS ?=		as
523841c287SSimon J. GerratyAS_STDIN ?=	-
533cbdda60SSimon J. GerratyAFLAGS=
543841c287SSimon J. GerratyCOMPILE.s ?=	${AS} ${AFLAGS}
553841c287SSimon J. GerratyLINK.s ?=		${CC} ${AFLAGS} ${LDFLAGS}
563841c287SSimon J. GerratyCOMPILE.S ?=	${CC} ${AFLAGS} ${CPPFLAGS} -c
573841c287SSimon J. GerratyLINK.S ?=		${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
583cbdda60SSimon J. Gerraty.if exists(/opt/gnu/bin/gcc) || exists(/usr/local/bin/gcc)
593cbdda60SSimon J. GerratyCC ?=		gcc -pipe
603841c287SSimon J. GerratyDBG ?=		-O -g
613841c287SSimon J. GerratySTATIC ?=		-static
623cbdda60SSimon J. Gerraty.else
633cbdda60SSimon J. GerratyCC ?=             cc
643841c287SSimon J. GerratyDBG ?=         -g
653841c287SSimon J. GerratySTATIC ?=         -Bstatic
663cbdda60SSimon J. Gerraty.endif
673841c287SSimon J. GerratyCFLAGS ?=		${DBG}
683841c287SSimon J. GerratyCOMPILE.c ?=	${CC} ${CFLAGS} ${CPPFLAGS} -c
693841c287SSimon J. GerratyLINK.c ?=		${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
703cbdda60SSimon J. Gerraty
713841c287SSimon J. GerratyCXX ?=		g++
723841c287SSimon J. GerratyCXXFLAGS ?=	${CFLAGS}
733841c287SSimon J. GerratyCOMPILE.cc ?=	${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
743841c287SSimon J. GerratyLINK.cc ?=	${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
753cbdda60SSimon J. Gerraty
763cbdda60SSimon J. Gerraty.if defined(DESTDIR)
773cbdda60SSimon J. GerratyCPPFLAGS+=	-nostdinc -idirafter ${DESTDIR}/usr/include
783cbdda60SSimon J. Gerraty.endif
793cbdda60SSimon J. Gerraty
803841c287SSimon J. GerratyMK_DEP ?=	mkdeps.sh -N
813841c287SSimon J. GerratyFC ?=		f77
823841c287SSimon J. GerratyFFLAGS ?=		-O
833cbdda60SSimon J. GerratyRFLAGS=
843841c287SSimon J. GerratyCOMPILE.f ?=	${FC} ${FFLAGS} -c
853841c287SSimon J. GerratyLINK.f ?=		${FC} ${FFLAGS} ${LDFLAGS}
863841c287SSimon J. GerratyCOMPILE.F ?=	${FC} ${FFLAGS} ${CPPFLAGS} -c
873841c287SSimon J. GerratyLINK.F ?=		${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
883841c287SSimon J. GerratyCOMPILE.r ?=	${FC} ${FFLAGS} ${RFLAGS} -c
893841c287SSimon J. GerratyLINK.r ?=		${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
903cbdda60SSimon J. Gerraty
913841c287SSimon J. GerratyLEX ?=		lex
923cbdda60SSimon J. GerratyLFLAGS=
933841c287SSimon J. GerratyLEX.l ?=		${LEX} ${LFLAGS}
943cbdda60SSimon J. Gerraty
953841c287SSimon J. GerratyLD ?=		ld
963cbdda60SSimon J. GerratyLDFLAGS=
973cbdda60SSimon J. Gerraty
983841c287SSimon J. GerratyLINT ?=		lint
993841c287SSimon J. GerratyLINTFLAGS ?=	-chapbx
1003cbdda60SSimon J. Gerraty
1013841c287SSimon J. GerratyPC ?=		pc
1023cbdda60SSimon J. GerratyPFLAGS=
1033841c287SSimon J. GerratyCOMPILE.p ?=	${PC} ${PFLAGS} ${CPPFLAGS} -c
1043841c287SSimon J. GerratyLINK.p ?=		${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
1053cbdda60SSimon J. Gerraty
1063cbdda60SSimon J. Gerraty.if exists(/usr/local/bin/bison) || exists(/opt/gnu/bin/bison)
1073841c287SSimon J. GerratyYACC ?=		bison -y
1083cbdda60SSimon J. Gerraty.else
1093841c287SSimon J. GerratyYACC ?=		yacc
1103cbdda60SSimon J. Gerraty.endif
1113841c287SSimon J. GerratyYFLAGS ?=		-d
1123841c287SSimon J. GerratyYACC.y ?=		${YACC} ${YFLAGS}
1133cbdda60SSimon J. Gerraty
1143cbdda60SSimon J. Gerraty# C
1153cbdda60SSimon J. Gerraty.c:
1163cbdda60SSimon J. Gerraty	${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
1173cbdda60SSimon J. Gerraty.c.o:
1183cbdda60SSimon J. Gerraty	${COMPILE.c} ${.IMPSRC}
1193cbdda60SSimon J. Gerraty.c.a:
1203cbdda60SSimon J. Gerraty	${COMPILE.c} ${.IMPSRC}
1213cbdda60SSimon J. Gerraty	${AR} ${ARFLAGS} $@ $*.o
1223cbdda60SSimon J. Gerraty	rm -f $*.o
1233cbdda60SSimon J. Gerraty
1243cbdda60SSimon J. Gerraty# C++
125e48f47ddSSimon J. Gerraty${CXX_SUFFIXES}:
1263cbdda60SSimon J. Gerraty	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
127e48f47ddSSimon J. Gerraty${CXX_SUFFIXES:%=%.o}:
1283cbdda60SSimon J. Gerraty	${COMPILE.cc} ${.IMPSRC}
129e48f47ddSSimon J. Gerraty${CXX_SUFFIXES:%=%.a}:
1303cbdda60SSimon J. Gerraty	${COMPILE.cc} ${.IMPSRC}
1313cbdda60SSimon J. Gerraty	${AR} ${ARFLAGS} $@ $*.o
1323cbdda60SSimon J. Gerraty	rm -f $*.o
1333cbdda60SSimon J. Gerraty
1343cbdda60SSimon J. Gerraty# Fortran/Ratfor
1353cbdda60SSimon J. Gerraty.f:
1363cbdda60SSimon J. Gerraty	${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
1373cbdda60SSimon J. Gerraty.f.o:
1383cbdda60SSimon J. Gerraty	${COMPILE.f} ${.IMPSRC}
1393cbdda60SSimon J. Gerraty.f.a:
1403cbdda60SSimon J. Gerraty	${COMPILE.f} ${.IMPSRC}
1413cbdda60SSimon J. Gerraty	${AR} ${ARFLAGS} $@ $*.o
1423cbdda60SSimon J. Gerraty	rm -f $*.o
1433cbdda60SSimon J. Gerraty
1443cbdda60SSimon J. Gerraty.F:
1453cbdda60SSimon J. Gerraty	${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
1463cbdda60SSimon J. Gerraty.F.o:
1473cbdda60SSimon J. Gerraty	${COMPILE.F} ${.IMPSRC}
1483cbdda60SSimon J. Gerraty.F.a:
1493cbdda60SSimon J. Gerraty	${COMPILE.F} ${.IMPSRC}
1503cbdda60SSimon J. Gerraty	${AR} ${ARFLAGS} $@ $*.o
1513cbdda60SSimon J. Gerraty	rm -f $*.o
1523cbdda60SSimon J. Gerraty
1533cbdda60SSimon J. Gerraty.r:
1543cbdda60SSimon J. Gerraty	${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
1553cbdda60SSimon J. Gerraty.r.o:
1563cbdda60SSimon J. Gerraty	${COMPILE.r} ${.IMPSRC}
1573cbdda60SSimon J. Gerraty.r.a:
1583cbdda60SSimon J. Gerraty	${COMPILE.r} ${.IMPSRC}
1593cbdda60SSimon J. Gerraty	${AR} ${ARFLAGS} $@ $*.o
1603cbdda60SSimon J. Gerraty	rm -f $*.o
1613cbdda60SSimon J. Gerraty
1623cbdda60SSimon J. Gerraty# Pascal
1633cbdda60SSimon J. Gerraty.p:
1643cbdda60SSimon J. Gerraty	${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
1653cbdda60SSimon J. Gerraty.p.o:
1663cbdda60SSimon J. Gerraty	${COMPILE.p} ${.IMPSRC}
1673cbdda60SSimon J. Gerraty.p.a:
1683cbdda60SSimon J. Gerraty	${COMPILE.p} ${.IMPSRC}
1693cbdda60SSimon J. Gerraty	${AR} ${ARFLAGS} $@ $*.o
1703cbdda60SSimon J. Gerraty	rm -f $*.o
1713cbdda60SSimon J. Gerraty
1723cbdda60SSimon J. Gerraty# Assembly
1733cbdda60SSimon J. Gerraty.s:
1743cbdda60SSimon J. Gerraty	${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
1753cbdda60SSimon J. Gerraty.s.o:
1763cbdda60SSimon J. Gerraty	${COMPILE.s} ${.IMPSRC}
1773cbdda60SSimon J. Gerraty.s.a:
1783cbdda60SSimon J. Gerraty	${COMPILE.s} ${.IMPSRC}
1793cbdda60SSimon J. Gerraty	${AR} ${ARFLAGS} $@ $*.o
1803cbdda60SSimon J. Gerraty	rm -f $*.o
1813cbdda60SSimon J. Gerraty.S:
1823cbdda60SSimon J. Gerraty	${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
1833cbdda60SSimon J. Gerraty.S.o:
1843cbdda60SSimon J. Gerraty	${COMPILE.S} ${.IMPSRC}
1853cbdda60SSimon J. Gerraty.S.a:
1863cbdda60SSimon J. Gerraty	${COMPILE.S} ${.IMPSRC}
1873cbdda60SSimon J. Gerraty	${AR} ${ARFLAGS} $@ $*.o
1883cbdda60SSimon J. Gerraty	rm -f $*.o
1893cbdda60SSimon J. Gerraty
1903cbdda60SSimon J. Gerraty# Lex
1913cbdda60SSimon J. Gerraty.l:
1923cbdda60SSimon J. Gerraty	${LEX.l} ${.IMPSRC}
1933cbdda60SSimon J. Gerraty	${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
1943cbdda60SSimon J. Gerraty	rm -f lex.yy.c
1953cbdda60SSimon J. Gerraty.l.c:
1963cbdda60SSimon J. Gerraty	${LEX.l} ${.IMPSRC}
1973cbdda60SSimon J. Gerraty	mv lex.yy.c ${.TARGET}
1983cbdda60SSimon J. Gerraty.l.o:
1993cbdda60SSimon J. Gerraty	${LEX.l} ${.IMPSRC}
2003cbdda60SSimon J. Gerraty	${COMPILE.c} -o ${.TARGET} lex.yy.c
2013cbdda60SSimon J. Gerraty	rm -f lex.yy.c
2023cbdda60SSimon J. Gerraty
2033cbdda60SSimon J. Gerraty# Yacc
2043cbdda60SSimon J. Gerraty.y:
2053cbdda60SSimon J. Gerraty	${YACC.y} ${.IMPSRC}
2063cbdda60SSimon J. Gerraty	${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
2073cbdda60SSimon J. Gerraty	rm -f y.tab.c
2083cbdda60SSimon J. Gerraty.y.c:
2093cbdda60SSimon J. Gerraty	${YACC.y} ${.IMPSRC}
2103cbdda60SSimon J. Gerraty	mv y.tab.c ${.TARGET}
2113cbdda60SSimon J. Gerraty.y.o:
2123cbdda60SSimon J. Gerraty	${YACC.y} ${.IMPSRC}
2133cbdda60SSimon J. Gerraty	${COMPILE.c} -o ${.TARGET} y.tab.c
2143cbdda60SSimon J. Gerraty	rm -f y.tab.c
2153cbdda60SSimon J. Gerraty
2163cbdda60SSimon J. Gerraty# Shell
2173cbdda60SSimon J. Gerraty.sh:
2183cbdda60SSimon J. Gerraty	rm -f ${.TARGET}
2193cbdda60SSimon J. Gerraty	cp ${.IMPSRC} ${.TARGET}
220*1d3f2ddcSSimon J. Gerraty	chmod a+x ${.TARGET}
221