don't bother resolving onbld python module deps
[unleashed.git] / share / mk / own.mk
blobfdde6156f43338b0b3c300085374af90a8d12368
1 # $Id: own.mk,v 1.35 2017/05/03 18:09:44 sjg Exp $
3 .if !target(__${.PARSEFILE}__)
4 __${.PARSEFILE}__:
6 .if !target(__init.mk__)
7 .include "init.mk"
8 .endif
10 .ifndef NOMAKECONF
11 MAKECONF?= /etc/mk.conf
12 .-include "${MAKECONF}"
13 .endif
15 .include <host-target.mk>
17 TARGET_OSNAME?= ${_HOST_OSNAME}
18 TARGET_OSREL?= ${_HOST_OSREL}
19 TARGET_OSTYPE?= ${HOST_OSTYPE}
20 TARGET_HOST?= ${HOST_TARGET}
22 # these may or may not exist
23 .-include <${TARGET_HOST}.mk>
24 .-include <config.mk>
26 RM?= rm
27 LN?= ln
28 INSTALL?= install
30 prefix?= /usr
31 .if exists(${prefix}/lib)
32 libprefix?= ${prefix}
33 .else
34 libprefix?= /usr
35 .endif
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}
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
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
80 .if !defined(SRCTOP) || !defined(OBJTOP)
81 # dpadd.mk is rather pointless without these
82 OPTIONS_DEFAULT_NO+= DPADD_MK
83 .endif
85 # process options
86 OPTIONS_DEFAULT_NO+= \
87 GPROF \
88 LIBTOOL \
90 OPTIONS_DEFAULT_YES+= \
91 ARCHIVE \
92 AUTODEP \
93 CRYPTO \
94 DOC \
95 DPADD_MK \
96 GDB \
97 INSTALL_AS_USER \
98 KERBEROS \
99 LINKLIB \
100 MAN \
101 NLS \
102 OBJ \
103 PIC \
104 SHARE \
105 SKEY \
106 YP \
108 OPTIONS_DEFAULT_DEPENDENT+= \
109 CATPAGES/MAN \
110 OBJDIRS/OBJ \
111 PICINSTALL/LINKLIB \
112 PICLIB/PIC \
113 PROFILE/LINKLIB \
114 STAGING_PROG/STAGING \
116 .include <options.mk>
118 .if ${MK_INSTALL_AS_USER} == "yes"
119 # We ignore this if user is root.
120 _uid!= id -u
121 .if ${_uid} != 0
122 .if !defined(USERGRP)
123 USERGRP!= id -g
124 .export USERGRP
125 .endif
126 .if empty(USER)
127 USER!= id -un
128 .endif
129 .for x in BIN CONF DOC INC INFO FILES KMOD LIB MAN NLS SHARE
130 $xOWN= ${USER}
131 $xGRP= ${USERGRP}
132 $x_INSTALL_OWN=
133 .endfor
134 PROG_INSTALL_OWN=
135 .endif
136 .endif
138 # override this in sys.mk
139 ROOT_GROUP?= wheel
140 BINGRP?= ${ROOT_GROUP}
141 BINOWN?= root
142 BINMODE?= 555
143 NONBINMODE?= 444
144 DIRMODE?= 755
146 INCLUDEDIR?= ${prefix}/include
147 INCDIR?= ${INCLUDEDIR}
149 # Define MANZ to have the man pages compressed (gzip)
150 #MANZ= 1
152 MANTARGET?= cat
153 MANDIR?= ${prefix}/share/man/${MANTARGET}
154 MANGRP?= ${BINGRP}
155 MANOWN?= ${BINOWN}
156 MANMODE?= ${NONBINMODE}
158 INCLUDEDIR?= ${libprefix}/include
159 LIBDIR?= ${libprefix}/lib
160 SHLIBDIR?= ${libprefix}/lib
161 .if ${USE_SHLIBDIR:Uno} == "yes"
162 _LIBSODIR?= ${SHLIBDIR}
163 .else
164 _LIBSODIR?= ${LIBDIR}
165 .endif
166 # this is where ld.*so lives
167 SHLINKDIR?= /usr/libexec
168 LIBGRP?= ${BINGRP}
169 LIBOWN?= ${BINOWN}
170 LIBMODE?= ${BINMODE}
172 DOCDIR?= ${prefix}/share/doc
173 DOCGRP?= ${BINGRP}
174 DOCOWN?= ${BINOWN}
175 DOCMODE?= ${NONBINMODE}
177 NLSDIR?= ${prefix}/share/nls
178 NLSGRP?= ${BINGRP}
179 NLSOWN?= ${BINOWN}
180 NLSMODE?= ${NONBINMODE}
182 KMODDIR?= ${prefix}/lkm
183 KMODGRP?= ${BINGRP}
184 KMODOWN?= ${BINOWN}
185 KMODMODE?= ${NONBINMODE}
187 SHAREGRP?= ${BINGRP}
188 SHAREOWN?= ${BINOWN}
189 SHAREMODE?= ${NONBINMODE}
191 COPY?= -c
192 STRIP_FLAG?= -s
194 .if ${TARGET_OSNAME} == "NetBSD"
195 .if exists(/usr/libexec/ld.elf_so)
196 OBJECT_FMT=ELF
197 .endif
198 OBJECT_FMT?=a.out
199 .endif
200 # sys.mk should set something appropriate if need be.
201 OBJECT_FMT?=ELF
203 .if (${_HOST_OSNAME} == "FreeBSD")
204 CFLAGS+= ${CPPFLAGS}
205 .endif
207 # allow for per target flags
208 # apply the :T:R first, so the more specific :T can override if needed
209 CPPFLAGS += ${CPPFLAGS_${.TARGET:T:R}} ${CPPFLAGS_${.TARGET:T}}
210 CFLAGS += ${CFLAGS_${.TARGET:T:R}} ${CFLAGS_${.TARGET:T}}
212 # Define SYS_INCLUDE to indicate whether you want symbolic links to the system
213 # source (``symlinks''), or a separate copy (``copies''); (latter useful
214 # in environments where it's not possible to keep /sys publicly readable)
215 #SYS_INCLUDE= symlinks
217 # don't try to generate PIC versions of libraries on machines
218 # which don't support PIC.
219 .if (${MACHINE_ARCH} == "vax") || \
220 ((${MACHINE_ARCH} == "mips") && defined(STATIC_TOOLCHAIN)) || \
221 ((${MACHINE_ARCH} == "alpha") && defined(ECOFF_TOOLCHAIN))
222 MK_PIC=no
223 .endif
225 .if ${MK_LINKLIB} == "no"
226 MK_PICINSTALL= no
227 MK_PROFILE= no
228 .endif
230 .if ${MK_MAN} == "no"
231 MK_CATPAGES= no
232 .endif
234 .if ${MK_OBJ} == "no"
235 MK_OBJDIRS= no
236 MK_AUTO_OBJ= no
237 .endif
239 .if ${MK_SHARE} == "no"
240 MK_CATPAGES= no
241 MK_DOC= no
242 MK_INFO= no
243 MK_MAN= no
244 MK_NLS= no
245 .endif
247 .endif