ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/src/vendor/NetBSD/bmake/20170720/mk/own.mk
Revision: 11139
Committed: Wed Jun 27 00:17:36 2018 UTC (5 years, 10 months ago) by laffer1
File size: 5901 byte(s)
Log Message:
tag 20170720

File Contents

# Content
1 # $Id: own.mk,v 1.36 2017/07/08 21:58:46 sjg Exp $
2
3 .if !target(__${.PARSEFILE}__)
4 __${.PARSEFILE}__:
5
6 .if !target(__init.mk__)
7 .include "init.mk"
8 .endif
9
10 .if !defined(NOMAKECONF) && !defined(NO_MAKECONF)
11 MAKECONF?= /etc/mk.conf
12 .-include "${MAKECONF}"
13 .endif
14
15 .include <host-target.mk>
16
17 TARGET_OSNAME?= ${_HOST_OSNAME}
18 TARGET_OSREL?= ${_HOST_OSREL}
19 TARGET_OSTYPE?= ${HOST_OSTYPE}
20 TARGET_HOST?= ${HOST_TARGET}
21
22 # these may or may not exist
23 .-include <${TARGET_HOST}.mk>
24 .-include <config.mk>
25
26 RM?= rm
27 LN?= ln
28 INSTALL?= install
29
30 prefix?= /usr
31 .if exists(${prefix}/lib)
32 libprefix?= ${prefix}
33 .else
34 libprefix?= /usr
35 .endif
36
37 # FreeBSD at least does not set this
38 MACHINE_ARCH?= ${MACHINE}
39 # we need to make sure these are defined too in case sys.mk fails to.
40 COMPILE.s?= ${CC} ${AFLAGS} -c
41 LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS}
42 COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp
43 LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
44 COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c
45 LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
46 CXXFLAGS?= ${CFLAGS}
47 COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
48 LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
49 COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c
50 LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS}
51 COMPILE.f?= ${FC} ${FFLAGS} -c
52 LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS}
53 COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c
54 LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
55 COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c
56 LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
57 LEX.l?= ${LEX} ${LFLAGS}
58 COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c
59 LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
60 YACC.y?= ${YACC} ${YFLAGS}
61
62 # for suffix rules
63 IMPFLAGS?= ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}}
64 .for s in .c .cc
65 COMPILE.$s += ${IMPFLAGS}
66 LINK.$s += ${IMPFLAGS}
67 .endfor
68
69 PRINT.VAR.MAKE = MAKESYSPATH=${MAKESYSPATH:U${.PARSEDIR}} ${.MAKE}
70 .if empty(.MAKEFLAGS:M-V*)
71 .if defined(MAKEOBJDIRPREFIX) || defined(MAKEOBJDIR)
72 PRINTOBJDIR= ${PRINT.VAR.MAKE} -r -V .OBJDIR -f /dev/null xxx
73 .else
74 PRINTOBJDIR= ${PRINT.VAR.MAKE} -V .OBJDIR
75 .endif
76 .else
77 PRINTOBJDIR= echo # prevent infinite recursion
78 .endif
79
80 # we really like to have SRCTOP and OBJTOP defined...
81 .if !defined(SRCTOP) || !defined(OBJTOP)
82 .-include <srctop.mk>
83 .endif
84
85 .if !defined(SRCTOP) || !defined(OBJTOP)
86 # dpadd.mk is rather pointless without these
87 OPTIONS_DEFAULT_NO+= DPADD_MK
88 .endif
89
90 # process options
91 OPTIONS_DEFAULT_NO+= \
92 INSTALL_AS_USER \
93 GPROF \
94 LIBTOOL \
95 LINT \
96
97 OPTIONS_DEFAULT_YES+= \
98 ARCHIVE \
99 AUTODEP \
100 CRYPTO \
101 DOC \
102 DPADD_MK \
103 GDB \
104 KERBEROS \
105 LINKLIB \
106 MAN \
107 NLS \
108 OBJ \
109 PIC \
110 SHARE \
111 SKEY \
112 YP \
113
114 OPTIONS_DEFAULT_DEPENDENT+= \
115 CATPAGES/MAN \
116 OBJDIRS/OBJ \
117 PICINSTALL/LINKLIB \
118 PICLIB/PIC \
119 PROFILE/LINKLIB \
120 STAGING_PROG/STAGING \
121
122 .include <options.mk>
123
124 .if ${MK_INSTALL_AS_USER} == "yes"
125 # We ignore this if user is root.
126 _uid!= id -u
127 .if ${_uid} != 0
128 .if !defined(USERGRP)
129 USERGRP!= id -g
130 .export USERGRP
131 .endif
132 .for x in BIN CONF DOC INC INFO FILES KMOD LIB MAN NLS PROG SHARE
133 $xOWN= ${USER}
134 $xGRP= ${USERGRP}
135 $x_INSTALL_OWN=
136 .endfor
137 .endif
138 .endif
139
140 # override this in sys.mk
141 ROOT_GROUP?= wheel
142 BINGRP?= ${ROOT_GROUP}
143 BINOWN?= root
144 BINMODE?= 555
145 NONBINMODE?= 444
146 DIRMODE?= 755
147
148 INCLUDEDIR?= ${prefix}/include
149 INCDIR?= ${INCLUDEDIR}
150
151 # Define MANZ to have the man pages compressed (gzip)
152 #MANZ= 1
153
154 MANTARGET?= cat
155 MANDIR?= ${prefix}/share/man/${MANTARGET}
156 MANGRP?= ${BINGRP}
157 MANOWN?= ${BINOWN}
158 MANMODE?= ${NONBINMODE}
159
160 INCLUDEDIR?= ${libprefix}/include
161 LIBDIR?= ${libprefix}/lib
162 SHLIBDIR?= ${libprefix}/lib
163 .if ${USE_SHLIBDIR:Uno} == "yes"
164 _LIBSODIR?= ${SHLIBDIR}
165 .else
166 _LIBSODIR?= ${LIBDIR}
167 .endif
168 # this is where ld.*so lives
169 SHLINKDIR?= /usr/libexec
170 LINTLIBDIR?= ${libprefix}/libdata/lint
171 LIBGRP?= ${BINGRP}
172 LIBOWN?= ${BINOWN}
173 LIBMODE?= ${NONBINMODE}
174
175 DOCDIR?= ${prefix}/share/doc
176 DOCGRP?= ${BINGRP}
177 DOCOWN?= ${BINOWN}
178 DOCMODE?= ${NONBINMODE}
179
180 NLSDIR?= ${prefix}/share/nls
181 NLSGRP?= ${BINGRP}
182 NLSOWN?= ${BINOWN}
183 NLSMODE?= ${NONBINMODE}
184
185 KMODDIR?= ${prefix}/lkm
186 KMODGRP?= ${BINGRP}
187 KMODOWN?= ${BINOWN}
188 KMODMODE?= ${NONBINMODE}
189
190 SHAREGRP?= ${BINGRP}
191 SHAREOWN?= ${BINOWN}
192 SHAREMODE?= ${NONBINMODE}
193
194 COPY?= -c
195 STRIP_FLAG?= -s
196
197 .if ${TARGET_OSNAME} == "NetBSD"
198 .if exists(/usr/libexec/ld.elf_so)
199 OBJECT_FMT=ELF
200 .endif
201 OBJECT_FMT?=a.out
202 .endif
203 # sys.mk should set something appropriate if need be.
204 OBJECT_FMT?=ELF
205
206 .if (${_HOST_OSNAME} == "FreeBSD")
207 CFLAGS+= ${CPPFLAGS}
208 .endif
209
210 # allow for per target flags
211 # apply the :T:R first, so the more specific :T can override if needed
212 CPPFLAGS += ${CPPFLAGS_${.TARGET:T:R}} ${CPPFLAGS_${.TARGET:T}}
213 CFLAGS += ${CFLAGS_${.TARGET:T:R}} ${CFLAGS_${.TARGET:T}}
214
215 # Define SYS_INCLUDE to indicate whether you want symbolic links to the system
216 # source (``symlinks''), or a separate copy (``copies''); (latter useful
217 # in environments where it's not possible to keep /sys publicly readable)
218 #SYS_INCLUDE= symlinks
219
220 # don't try to generate PIC versions of libraries on machines
221 # which don't support PIC.
222 .if (${MACHINE_ARCH} == "vax") || \
223 ((${MACHINE_ARCH} == "mips") && defined(STATIC_TOOLCHAIN)) || \
224 ((${MACHINE_ARCH} == "alpha") && defined(ECOFF_TOOLCHAIN))
225 MK_PIC=no
226 .endif
227
228 # No lint, for now.
229 NOLINT=
230
231
232 .if ${MK_LINKLIB} == "no"
233 MK_PICINSTALL= no
234 MK_PROFILE= no
235 .endif
236
237 .if ${MK_MAN} == "no"
238 MK_CATPAGES= no
239 .endif
240
241 .if ${MK_OBJ} == "no"
242 MK_OBJDIRS= no
243 MK_AUTO_OBJ= no
244 .endif
245
246 .if ${MK_SHARE} == "no"
247 MK_CATPAGES= no
248 MK_DOC= no
249 MK_INFO= no
250 MK_MAN= no
251 MK_NLS= no
252 .endif
253
254 # :U incase not using our sys.mk
255 .if ${MK_META_MODE:Uno} == "yes"
256 # should all be set by sys.mk if not default
257 TARGET_SPEC_VARS ?= MACHINE
258 .if ${TARGET_SPEC_VARS:[#]} > 1
259 TARGET_SPEC_VARS_REV := ${TARGET_SPEC_VARS:[-1..1]}
260 .else
261 TARGET_SPEC_VARS_REV = ${TARGET_SPEC_VARS}
262 .endif
263 .if ${MK_STAGING} == "yes"
264 STAGE_ROOT?= ${OBJROOT}/stage
265 STAGE_OBJTOP?= ${STAGE_ROOT}/${TARGET_SPEC_VARS_REV:ts/}
266 .endif
267 .endif
268
269 .endif