Upgrade make(1). 1/2
[dragonfly.git] / contrib / bmake / mk / sys / HP-UX.mk
1 #       $Id: HP-UX.mk,v 1.14 2020/06/29 14:34:42 sjg Exp $
2 #       $NetBSD: sys.mk,v 1.19.2.1 1994/07/26 19:58:31 cgd Exp $
3 #       @(#)sys.mk      5.11 (Berkeley) 3/13/91
4
5 OS ?=           HP-UX
6 ROOT_GROUP ?=   root
7 unix ?=         We run ${OS}.
8
9 # HP-UX's cc does not provide any clues as to wether this is 9.x or 10.x
10 # nor does sys/param.h, so we'll use the existence of /hp-ux
11 .if exists("/hp-ux") 
12 OSMAJOR ?=9
13 .endif
14 OSMAJOR ?=10
15 __HPUX_VERSION ?=${OSMAJOR}
16
17 .SUFFIXES: .out .a .ln .o .c ${CXX_SUFFIXES} .F .f .r .y .l .s .S .cl .p .h .sh .m4
18
19 LIBMODE ?= 755
20 LIBCRT0 ?=      /lib/crt0.o
21
22 .LIBS:          .a
23
24 # +b<path> is needed to stop the binaries from insisting on having
25 #       the build tree available :-)
26 # +s    tells the dynamic loader to use SHLIB_PATH if set
27 LD_bpath ?=-Wl,+b/lib:/usr/lib:/usr/local/lib
28 LD_spath ?=-Wl,+s
29 LDADD+= ${LD_bpath} ${LD_spath}
30
31 .if exists(/usr/lib/end.o)
32 LDADD+= /usr/lib/end.o
33 .endif
34
35 AR ?=           ar
36 ARFLAGS ?=      rl
37 RANLIB ?=               :
38
39 AFLAGS=
40 COMPILE.s ?=    ${AS} ${AFLAGS}
41 LINK.s ?=               ${CC} ${AFLAGS} ${LDFLAGS}
42 COMPILE.S ?=    ${CC} ${AFLAGS} ${CPPFLAGS} -c
43 LINK.S ?=               ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
44 .if exists(/usr/local/bin/gcc)
45 PIPE ?= -pipe
46 CC ?=           gcc ${PIPE}
47 AS ?=           gas
48 DBG ?=          -O -g
49 STATIC ?=               -static
50 .if defined(DESTDIR)
51 CPPFLAGS+=      -nostdinc -idirafter ${DESTDIR}/usr/include
52 .endif
53 .else
54 # HP's bundled compiler knows not -g or -O
55 AS ?=           as
56 CC ?=             cc
57 .if exists(/opt/ansic/bin/cc)
58 CCMODE ?=-Ae +ESlit
59 PICFLAG ?= +z
60 LD_x=
61 DBG ?=-g -O
62 .endif
63 DBG ?=         
64 STATIC ?=         -Wl,-a,archive
65 .endif
66 .if (${__HPUX_VERSION} == "10")
67 CCSOURCE_FLAGS ?= -D_HPUX_SOURCE
68 .else
69 CCSOURCE_FLAGS ?= -D_HPUX_SOURCE -D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE -D_INCLUDE_XOPEN_SOURCE_EXTENDED
70 .endif
71 CFLAGS ?=               ${DBG}
72 CFLAGS+ ?= ${CCMODE} -D__hpux__ -D__HPUX_VERSION=${__HPUX_VERSION} ${CCSOURCE_FLAGS}
73 COMPILE.c ?=    ${CC} ${CFLAGS} ${CPPFLAGS} -c
74 LINK.c ?=               ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
75
76 CXX ?=          g++
77 CXXFLAGS ?=     ${CFLAGS}
78 COMPILE.cc ?=   ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
79 LINK.cc ?=      ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
80
81 CPP ?=          cpp
82
83 MK_DEP ?=       mkdeps.sh -N
84 FC ?=           f77
85 FFLAGS ?=               -O
86 RFLAGS=
87 COMPILE.f ?=    ${FC} ${FFLAGS} -c
88 LINK.f ?=               ${FC} ${FFLAGS} ${LDFLAGS}
89 COMPILE.F ?=    ${FC} ${FFLAGS} ${CPPFLAGS} -c
90 LINK.F ?=               ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
91 COMPILE.r ?=    ${FC} ${FFLAGS} ${RFLAGS} -c
92 LINK.r ?=               ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
93
94 LEX ?=          lex
95 LFLAGS=
96 LEX.l ?=                ${LEX} ${LFLAGS}
97
98 LD ?=           ld
99 LDFLAGS=
100
101 LINT ?=         lint
102 LINTFLAGS ?=    -chapbx
103
104 PC ?=           pc
105 PFLAGS=
106 COMPILE.p ?=    ${PC} ${PFLAGS} ${CPPFLAGS} -c
107 LINK.p ?=               ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
108
109 # HP's sh sucks
110 ENV=
111 MAKE_SHELL ?=           /bin/ksh
112
113 .if exists(/usr/local/bin/bison)
114 YACC ?=         bison -y
115 .else
116 YACC ?=         yacc
117 .endif
118 YFLAGS ?=               -d
119 YACC.y ?=               ${YACC} ${YFLAGS}
120
121 # C
122 .c:
123         ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
124 .c.o:
125         ${COMPILE.c} ${.IMPSRC}
126 .c.a:
127         ${COMPILE.c} ${.IMPSRC}
128         ${AR} ${ARFLAGS} $@ $*.o
129         rm -f $*.o
130
131 # C++
132 ${CXX_SUFFIXES}:
133         ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
134 ${CXX_SUFFIXES:%=%.o}:
135         ${COMPILE.cc} ${.IMPSRC}
136 ${CXX_SUFFIXES:%=%.a}:
137         ${COMPILE.cc} ${.IMPSRC}
138         ${AR} ${ARFLAGS} $@ $*.o
139         rm -f $*.o
140
141 # Fortran/Ratfor
142 .f:
143         ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
144 .f.o:
145         ${COMPILE.f} ${.IMPSRC}
146 .f.a:
147         ${COMPILE.f} ${.IMPSRC}
148         ${AR} ${ARFLAGS} $@ $*.o
149         rm -f $*.o
150
151 .F:
152         ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
153 .F.o:
154         ${COMPILE.F} ${.IMPSRC}
155 .F.a:
156         ${COMPILE.F} ${.IMPSRC}
157         ${AR} ${ARFLAGS} $@ $*.o
158         rm -f $*.o
159
160 .r:
161         ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
162 .r.o:
163         ${COMPILE.r} ${.IMPSRC}
164 .r.a:
165         ${COMPILE.r} ${.IMPSRC}
166         ${AR} ${ARFLAGS} $@ $*.o
167         rm -f $*.o
168
169 # Pascal
170 .p:
171         ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
172 .p.o:
173         ${COMPILE.p} ${.IMPSRC}
174 .p.a:
175         ${COMPILE.p} ${.IMPSRC}
176         ${AR} ${ARFLAGS} $@ $*.o
177         rm -f $*.o
178
179 # Assembly
180 .s:
181         ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
182 .s.o:
183         ${COMPILE.s} -o ${.TARGET} ${.IMPSRC} 
184 .s.a:
185         ${COMPILE.s} ${.IMPSRC}
186         ${AR} ${ARFLAGS} $@ $*.o
187         rm -f $*.o
188 .S:
189         ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
190 .S.o:
191         ${COMPILE.S} ${.IMPSRC}
192 .S.a:
193         ${COMPILE.S} ${.IMPSRC}
194         ${AR} ${ARFLAGS} $@ $*.o
195         rm -f $*.o
196
197 # Lex
198 .l:
199         ${LEX.l} ${.IMPSRC}
200         ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
201         rm -f lex.yy.c
202 .l.c:
203         ${LEX.l} ${.IMPSRC}
204         mv lex.yy.c ${.TARGET}
205 .l.o:
206         ${LEX.l} ${.IMPSRC}
207         ${COMPILE.c} -o ${.TARGET} lex.yy.c 
208         rm -f lex.yy.c
209
210 # Yacc
211 .y:
212         ${YACC.y} ${.IMPSRC}
213         ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
214         rm -f y.tab.c
215 .y.c:
216         ${YACC.y} ${.IMPSRC}
217         mv y.tab.c ${.TARGET}
218 .y.o:
219         ${YACC.y} ${.IMPSRC}
220         ${COMPILE.c} -o ${.TARGET} y.tab.c
221         rm -f y.tab.c
222
223 # Shell
224 .sh:
225         rm -f ${.TARGET}
226         cp ${.IMPSRC} ${.TARGET}