]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/bmake/mk/sys/HP-UX.mk
MFC bmake-20170720
[FreeBSD/stable/10.git] / contrib / bmake / mk / sys / HP-UX.mk
1 #       $Id: HP-UX.mk,v 1.11 2017/05/05 18:02:16 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 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}