1321964Ssjg#	$Id: Linux.mk,v 1.9 2017/05/05 18:02:16 sjg Exp $
2246149Ssjg#	$NetBSD: sys.mk,v 1.19.2.1 1994/07/26 19:58:31 cgd Exp $
3246149Ssjg#	@(#)sys.mk	5.11 (Berkeley) 3/13/91
4246149Ssjg
5246149SsjgOS?=		Linux
6246149Ssjgunix?=		We run ${OS}.
7246149Ssjg
8246149SsjgROOT_GROUP=	root
9246149Ssjg
10246149Ssjg# would be better to work out where it is...
11246149SsjgLIBCRT0= /dev/null
12246149Ssjg
13246149SsjgNEED_SOLINKS=yes
14246149Ssjg
15321964Ssjg.SUFFIXES: .out .a .ln .o .c ${CXX_SUFFIXES} .F .f .r .y .l .s .S .cl .p .h .sh .m4
16246149Ssjg
17246149Ssjg.LIBS:		.a
18246149Ssjg
19246149SsjgAR=		ar
20246149SsjgARFLAGS=	rl
21246149SsjgRANLIB=		ranlib
22246149Ssjg
23246149SsjgAS=		as
24246149SsjgAFLAGS=
25246149SsjgCOMPILE.s=	${AS} ${AFLAGS}
26246149SsjgLINK.s=		${CC} ${AFLAGS} ${LDFLAGS}
27246149SsjgCOMPILE.S=	${CC} ${AFLAGS} ${CPPFLAGS} -c
28246149SsjgLINK.S=		${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
29246149Ssjg.if exists(/usr/local/bin/gcc)
30246149SsjgCC=		gcc -pipe
31246149SsjgDBG=		-O -g
32246149SsjgSTATIC?=		-static
33246149Ssjg.else
34246149SsjgCC=             cc -pipe
35246149SsjgDBG=         -g
36246149SsjgSTATIC=         -Bstatic
37246149Ssjg.endif
38246149SsjgCFLAGS=		${DBG}
39246149SsjgCOMPILE.c=	${CC} ${CFLAGS} ${CPPFLAGS} -c
40246149SsjgLINK.c=		${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
41246149Ssjg
42246149SsjgCXX=		g++
43246149SsjgCXXFLAGS=	${CFLAGS}
44246149SsjgCOMPILE.cc=	${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
45246149SsjgLINK.cc=	${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
46246149Ssjg
47246149SsjgCPP=		cpp
48246149Ssjg.if defined(DESTDIR)
49246149SsjgCPPFLAGS+=	-nostdinc -idirafter ${DESTDIR}/usr/include
50246149Ssjg.endif
51246149Ssjg
52246149SsjgMK_DEP=	mkdeps.sh -N
53246149SsjgFC=		f77
54246149SsjgFFLAGS=		-O
55246149SsjgRFLAGS=
56246149SsjgCOMPILE.f=	${FC} ${FFLAGS} -c
57246149SsjgLINK.f=		${FC} ${FFLAGS} ${LDFLAGS}
58246149SsjgCOMPILE.F=	${FC} ${FFLAGS} ${CPPFLAGS} -c
59246149SsjgLINK.F=		${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
60246149SsjgCOMPILE.r=	${FC} ${FFLAGS} ${RFLAGS} -c
61246149SsjgLINK.r=		${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
62246149Ssjg
63246149SsjgLEX=		lex
64246149SsjgLFLAGS=
65246149SsjgLEX.l=		${LEX} ${LFLAGS}
66246149Ssjg
67246149SsjgLD=		ld
68246149SsjgLDFLAGS=
69246149Ssjg
70246149SsjgLINT=		lint
71246149SsjgLINTFLAGS=	-chapbx
72246149Ssjg
73246149SsjgPC=		pc
74246149SsjgPFLAGS=
75246149SsjgCOMPILE.p=	${PC} ${PFLAGS} ${CPPFLAGS} -c
76246149SsjgLINK.p=		${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
77246149Ssjg
78246149SsjgSHELL=		sh
79246149Ssjg
80246149SsjgYACC=		yacc
81246149SsjgYFLAGS=		-d
82246149SsjgYACC.y=		${YACC} ${YFLAGS}
83246149Ssjg
84246149Ssjg# C
85246149Ssjg.c:
86246149Ssjg	${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
87246149Ssjg.c.o:
88246149Ssjg	${COMPILE.c} ${.IMPSRC}
89246149Ssjg.c.a:
90246149Ssjg	${COMPILE.c} ${.IMPSRC}
91246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
92246149Ssjg	rm -f $*.o
93246149Ssjg
94246149Ssjg# C++
95321964Ssjg${CXX_SUFFIXES}:
96246149Ssjg	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
97321964Ssjg${CXX_SUFFIXES:%=%.o}:
98246149Ssjg	${COMPILE.cc} ${.IMPSRC}
99321964Ssjg${CXX_SUFFIXES:%=%.a}:
100246149Ssjg	${COMPILE.cc} ${.IMPSRC}
101246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
102246149Ssjg	rm -f $*.o
103246149Ssjg
104246149Ssjg# Fortran/Ratfor
105246149Ssjg.f:
106246149Ssjg	${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
107246149Ssjg.f.o:
108246149Ssjg	${COMPILE.f} ${.IMPSRC}
109246149Ssjg.f.a:
110246149Ssjg	${COMPILE.f} ${.IMPSRC}
111246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
112246149Ssjg	rm -f $*.o
113246149Ssjg
114246149Ssjg.F:
115246149Ssjg	${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
116246149Ssjg.F.o:
117246149Ssjg	${COMPILE.F} ${.IMPSRC}
118246149Ssjg.F.a:
119246149Ssjg	${COMPILE.F} ${.IMPSRC}
120246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
121246149Ssjg	rm -f $*.o
122246149Ssjg
123246149Ssjg.r:
124246149Ssjg	${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
125246149Ssjg.r.o:
126246149Ssjg	${COMPILE.r} ${.IMPSRC}
127246149Ssjg.r.a:
128246149Ssjg	${COMPILE.r} ${.IMPSRC}
129246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
130246149Ssjg	rm -f $*.o
131246149Ssjg
132246149Ssjg# Pascal
133246149Ssjg.p:
134246149Ssjg	${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
135246149Ssjg.p.o:
136246149Ssjg	${COMPILE.p} ${.IMPSRC}
137246149Ssjg.p.a:
138246149Ssjg	${COMPILE.p} ${.IMPSRC}
139246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
140246149Ssjg	rm -f $*.o
141246149Ssjg
142246149Ssjg# Assembly
143246149Ssjg.s:
144246149Ssjg	${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
145246149Ssjg.s.o:
146246149Ssjg	${COMPILE.s} -o ${.TARGET} ${.IMPSRC} 
147246149Ssjg.s.a:
148246149Ssjg	${COMPILE.s} ${.IMPSRC}
149246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
150246149Ssjg	rm -f $*.o
151246149Ssjg.S:
152246149Ssjg	${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
153246149Ssjg.S.o:
154246149Ssjg	${COMPILE.S} ${.IMPSRC}
155246149Ssjg.S.a:
156246149Ssjg	${COMPILE.S} ${.IMPSRC}
157246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
158246149Ssjg	rm -f $*.o
159246149Ssjg
160246149Ssjg# Lex
161246149Ssjg.l:
162246149Ssjg	${LEX.l} ${.IMPSRC}
163246149Ssjg	${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
164246149Ssjg	rm -f lex.yy.c
165246149Ssjg.l.c:
166246149Ssjg	${LEX.l} ${.IMPSRC}
167246149Ssjg	mv lex.yy.c ${.TARGET}
168246149Ssjg.l.o:
169246149Ssjg	${LEX.l} ${.IMPSRC}
170246149Ssjg	${COMPILE.c} -o ${.TARGET} lex.yy.c 
171246149Ssjg	rm -f lex.yy.c
172246149Ssjg
173246149Ssjg# Yacc
174246149Ssjg.y:
175246149Ssjg	${YACC.y} ${.IMPSRC}
176246149Ssjg	${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
177246149Ssjg	rm -f y.tab.c
178246149Ssjg.y.c:
179246149Ssjg	${YACC.y} ${.IMPSRC}
180246149Ssjg	mv y.tab.c ${.TARGET}
181246149Ssjg.y.o:
182246149Ssjg	${YACC.y} ${.IMPSRC}
183246149Ssjg	${COMPILE.c} -o ${.TARGET} y.tab.c
184246149Ssjg	rm -f y.tab.c
185246149Ssjg
186246149Ssjg# Shell
187246149Ssjg.sh:
188246149Ssjg	rm -f ${.TARGET}
189246149Ssjg	cp ${.IMPSRC} ${.TARGET}
190