1246149Ssjg#	$Id: HP-UX.mk,v 1.9 2003/09/30 16:42:23 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=		HP-UX
6246149SsjgROOT_GROUP=	root
7246149Ssjgunix?=		We run ${OS}.
8246149Ssjg
9246149Ssjg# HP-UX's cc does not provide any clues as to wether this is 9.x or 10.x
10246149Ssjg# nor does sys/param.h, so we'll use the existence of /hp-ux
11246149Ssjg.if exists("/hp-ux") 
12246149SsjgOSMAJOR?=9
13246149Ssjg.endif
14246149SsjgOSMAJOR?=10
15246149Ssjg__HPUX_VERSION?=${OSMAJOR}
16246149Ssjg
17246149Ssjg.SUFFIXES: .out .a .ln .o .c .cc .C .F .f .r .y .l .s .S .cl .p .h .sh .m4
18246149Ssjg
19246149SsjgLIBMODE= 755
20246149SsjgLIBCRT0=	/lib/crt0.o
21246149Ssjg
22246149Ssjg.LIBS:		.a
23246149Ssjg
24246149Ssjg# +b<path> is needed to stop the binaries from insisting on having
25246149Ssjg#	the build tree available :-)
26246149Ssjg# +s	tells the dynamic loader to use SHLIB_PATH if set
27246149SsjgLD_bpath?=-Wl,+b/lib:/usr/lib:/usr/local/lib
28246149SsjgLD_spath?=-Wl,+s
29246149SsjgLDADD+= ${LD_bpath} ${LD_spath}
30246149Ssjg
31246149Ssjg.if exists(/usr/lib/end.o)
32246149SsjgLDADD+= /usr/lib/end.o
33246149Ssjg.endif
34246149Ssjg
35246149SsjgAR=		ar
36246149SsjgARFLAGS=	rl
37246149SsjgRANLIB=		:
38246149Ssjg
39246149SsjgAFLAGS=
40246149SsjgCOMPILE.s=	${AS} ${AFLAGS}
41246149SsjgLINK.s=		${CC} ${AFLAGS} ${LDFLAGS}
42246149SsjgCOMPILE.S=	${CC} ${AFLAGS} ${CPPFLAGS} -c
43246149SsjgLINK.S=		${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
44246149Ssjg.if exists(/usr/local/bin/gcc)
45246149SsjgPIPE?= -pipe
46246149SsjgCC?=		gcc ${PIPE}
47246149SsjgAS=		gas
48246149SsjgDBG?=		-O -g
49246149SsjgSTATIC?=		-static
50246149Ssjg.if defined(DESTDIR)
51246149SsjgCPPFLAGS+=	-nostdinc -idirafter ${DESTDIR}/usr/include
52246149Ssjg.endif
53246149Ssjg.else
54246149Ssjg# HP's bundled compiler knows not -g or -O
55246149SsjgAS=		as
56246149SsjgCC=             cc
57246149Ssjg.if exists(/opt/ansic/bin/cc)
58246149SsjgCCMODE?=-Ae +ESlit
59246149SsjgPICFLAG?= +z
60246149SsjgLD_x=
61246149SsjgDBG?=-g -O
62246149Ssjg.endif
63246149SsjgDBG?=         
64246149SsjgSTATIC?=         -Wl,-a,archive
65246149Ssjg.endif
66246149Ssjg.if (${__HPUX_VERSION} == "10")
67246149SsjgCCSOURCE_FLAGS?= -D_HPUX_SOURCE
68246149Ssjg.else
69246149SsjgCCSOURCE_FLAGS?= -D_HPUX_SOURCE -D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE -D_INCLUDE_XOPEN_SOURCE_EXTENDED
70246149Ssjg.endif
71246149SsjgCFLAGS=		${DBG}
72246149SsjgCFLAGS+= ${CCMODE} -D__hpux__ -D__HPUX_VERSION=${__HPUX_VERSION} ${CCSOURCE_FLAGS}
73246149SsjgCOMPILE.c=	${CC} ${CFLAGS} ${CPPFLAGS} -c
74246149SsjgLINK.c=		${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
75246149Ssjg
76246149SsjgCXX=		g++
77246149SsjgCXXFLAGS=	${CFLAGS}
78246149SsjgCOMPILE.cc=	${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
79246149SsjgLINK.cc=	${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
80246149Ssjg
81246149SsjgCPP=		cpp
82246149Ssjg
83246149SsjgMK_DEP=	mkdeps.sh -N
84246149SsjgFC=		f77
85246149SsjgFFLAGS=		-O
86246149SsjgRFLAGS=
87246149SsjgCOMPILE.f=	${FC} ${FFLAGS} -c
88246149SsjgLINK.f=		${FC} ${FFLAGS} ${LDFLAGS}
89246149SsjgCOMPILE.F=	${FC} ${FFLAGS} ${CPPFLAGS} -c
90246149SsjgLINK.F=		${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
91246149SsjgCOMPILE.r=	${FC} ${FFLAGS} ${RFLAGS} -c
92246149SsjgLINK.r=		${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
93246149Ssjg
94246149SsjgLEX=		lex
95246149SsjgLFLAGS=
96246149SsjgLEX.l=		${LEX} ${LFLAGS}
97246149Ssjg
98246149SsjgLD=		ld
99246149SsjgLDFLAGS=
100246149Ssjg
101246149SsjgLINT=		lint
102246149SsjgLINTFLAGS=	-chapbx
103246149Ssjg
104246149SsjgMAKE=		bmake
105246149Ssjg
106246149SsjgPC=		pc
107246149SsjgPFLAGS=
108246149SsjgCOMPILE.p=	${PC} ${PFLAGS} ${CPPFLAGS} -c
109246149SsjgLINK.p=		${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
110246149Ssjg
111246149Ssjg# HP's sh sucks
112246149SsjgENV=
113246149SsjgSHELL=		/bin/ksh
114246149Ssjg
115246149Ssjg.if exists(/usr/local/bin/bison)
116246149SsjgYACC=		bison -y
117246149Ssjg.else
118246149SsjgYACC=		yacc
119246149Ssjg.endif
120246149SsjgYFLAGS=		-d
121246149SsjgYACC.y=		${YACC} ${YFLAGS}
122246149Ssjg
123246149Ssjg# C
124246149Ssjg.c:
125246149Ssjg	${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
126246149Ssjg.c.o:
127246149Ssjg	${COMPILE.c} ${.IMPSRC}
128246149Ssjg.c.a:
129246149Ssjg	${COMPILE.c} ${.IMPSRC}
130246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
131246149Ssjg	rm -f $*.o
132246149Ssjg
133246149Ssjg# C++
134246149Ssjg.cc:
135246149Ssjg	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
136246149Ssjg.cc.o:
137246149Ssjg	${COMPILE.cc} ${.IMPSRC}
138246149Ssjg.cc.a:
139246149Ssjg	${COMPILE.cc} ${.IMPSRC}
140246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
141246149Ssjg	rm -f $*.o
142246149Ssjg
143246149Ssjg.C:
144246149Ssjg	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
145246149Ssjg.C.o:
146246149Ssjg	${COMPILE.cc} ${.IMPSRC}
147246149Ssjg.C.a:
148246149Ssjg	${COMPILE.cc} ${.IMPSRC}
149246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
150246149Ssjg	rm -f $*.o
151246149Ssjg
152246149Ssjg# Fortran/Ratfor
153246149Ssjg.f:
154246149Ssjg	${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
155246149Ssjg.f.o:
156246149Ssjg	${COMPILE.f} ${.IMPSRC}
157246149Ssjg.f.a:
158246149Ssjg	${COMPILE.f} ${.IMPSRC}
159246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
160246149Ssjg	rm -f $*.o
161246149Ssjg
162246149Ssjg.F:
163246149Ssjg	${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
164246149Ssjg.F.o:
165246149Ssjg	${COMPILE.F} ${.IMPSRC}
166246149Ssjg.F.a:
167246149Ssjg	${COMPILE.F} ${.IMPSRC}
168246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
169246149Ssjg	rm -f $*.o
170246149Ssjg
171246149Ssjg.r:
172246149Ssjg	${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
173246149Ssjg.r.o:
174246149Ssjg	${COMPILE.r} ${.IMPSRC}
175246149Ssjg.r.a:
176246149Ssjg	${COMPILE.r} ${.IMPSRC}
177246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
178246149Ssjg	rm -f $*.o
179246149Ssjg
180246149Ssjg# Pascal
181246149Ssjg.p:
182246149Ssjg	${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
183246149Ssjg.p.o:
184246149Ssjg	${COMPILE.p} ${.IMPSRC}
185246149Ssjg.p.a:
186246149Ssjg	${COMPILE.p} ${.IMPSRC}
187246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
188246149Ssjg	rm -f $*.o
189246149Ssjg
190246149Ssjg# Assembly
191246149Ssjg.s:
192246149Ssjg	${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
193246149Ssjg.s.o:
194246149Ssjg	${COMPILE.s} -o ${.TARGET} ${.IMPSRC} 
195246149Ssjg.s.a:
196246149Ssjg	${COMPILE.s} ${.IMPSRC}
197246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
198246149Ssjg	rm -f $*.o
199246149Ssjg.S:
200246149Ssjg	${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
201246149Ssjg.S.o:
202246149Ssjg	${COMPILE.S} ${.IMPSRC}
203246149Ssjg.S.a:
204246149Ssjg	${COMPILE.S} ${.IMPSRC}
205246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
206246149Ssjg	rm -f $*.o
207246149Ssjg
208246149Ssjg# Lex
209246149Ssjg.l:
210246149Ssjg	${LEX.l} ${.IMPSRC}
211246149Ssjg	${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
212246149Ssjg	rm -f lex.yy.c
213246149Ssjg.l.c:
214246149Ssjg	${LEX.l} ${.IMPSRC}
215246149Ssjg	mv lex.yy.c ${.TARGET}
216246149Ssjg.l.o:
217246149Ssjg	${LEX.l} ${.IMPSRC}
218246149Ssjg	${COMPILE.c} -o ${.TARGET} lex.yy.c 
219246149Ssjg	rm -f lex.yy.c
220246149Ssjg
221246149Ssjg# Yacc
222246149Ssjg.y:
223246149Ssjg	${YACC.y} ${.IMPSRC}
224246149Ssjg	${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
225246149Ssjg	rm -f y.tab.c
226246149Ssjg.y.c:
227246149Ssjg	${YACC.y} ${.IMPSRC}
228246149Ssjg	mv y.tab.c ${.TARGET}
229246149Ssjg.y.o:
230246149Ssjg	${YACC.y} ${.IMPSRC}
231246149Ssjg	${COMPILE.c} -o ${.TARGET} y.tab.c
232246149Ssjg	rm -f y.tab.c
233246149Ssjg
234246149Ssjg# Shell
235246149Ssjg.sh:
236246149Ssjg	rm -f ${.TARGET}
237246149Ssjg	cp ${.IMPSRC} ${.TARGET}
238