Add files from parent branch HEAD:
[pkgsrc.git] / mk / bsd.prefs.mk
1 # $NetBSD: bsd.prefs.mk,v 1.287 2008/09/16 11:40:10 tron Exp $
2 #
3 # This file includes the mk.conf file, which contains the user settings.
4 #
5 # Packages should include this file before any of the .if directives, as
6 # well as before modifying variables like CFLAGS, LDFLAGS, and so on.
7 # Otherwise the behavior may be unexpected.
8 #
9 # When mk.conf is included by this file, the following variables are
10 # defined:
11 #
12 # ACCEPTABLE_LICENSES
13 #       This variable is set to the list of Open Source licenses. See
14 #       mk/license.mk for details.
15 #
16 # MACHINE_PLATFORM
17 #       The platform for which the packages are built. It has the form
18 #       ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH}.
19 #
20 # NATIVE_MACHINE_PLATFORM
21 #       The platform on which the packages are built. This is usually
22 #       the same as ${MACHINE_PLATFORM}, but can be different when
23 #       cross-building packages.
24 #
25 # PKGPATH
26 #       The path of the package, relative to the pkgsrc top-level
27 #       directory. Typical values look like editors/emacs or
28 #       misc/openoffice-bin.
29 #
30 # Keywords: mk.conf user
31 #
32
33 .if !defined(BSD_PKG_MK)
34
35 # Let mk.conf know that this is pkgsrc.
36 BSD_PKG_MK=1
37 __PREFIX_SET__:=${PREFIX}
38
39 # Set PATH if not already set
40 .if !defined(PATH)
41 PATH=/bin:/usr/bin:/sbin:/usr/sbin
42 .endif
43
44 # Expand MAKE to a full path.
45 .if !defined(_MAKE)
46 _MAKE:= ${MAKE}
47 # allow for MAKE=./make and similar.
48 .  if empty(_MAKE:M/*) && !empty(_MAKE:M*/*) && defined(PWD) && exists(${PWD}/${MAKE})
49 _MAKE:= ${PWD}/${MAKE}
50 .  endif
51 .  for _dir_ in ${PATH:C/\:/ /g}
52 .    if empty(_MAKE:M/*)
53 .      if exists(${_dir_}/${MAKE})
54 _MAKE:= ${_dir_}/${MAKE}
55 .      endif
56 .    endif
57 .  endfor
58 .  if !empty(_MAKE:M/*)
59 MAKEFLAGS+=     _MAKE=${_MAKE:Q}
60 .  endif
61 .endif
62 MAKE:=  ${_MAKE}
63
64 .if exists(/usr/bin/uname)
65 UNAME=/usr/bin/uname
66 .elif exists(/bin/uname)
67 UNAME=/bin/uname
68 .else
69 UNAME=echo Unknown
70 .endif
71
72 .if !defined(OPSYS)
73 OPSYS:=                 ${:!${UNAME} -s!:S/-//g:S/\///g}
74 MAKEFLAGS+=             OPSYS=${OPSYS:Q}
75 .endif
76
77 # The _CMD indirection allows code below to modify these values
78 # without executing the commands at all.  Later, recursed make
79 # invocations will skip these blocks entirely thanks to MAKEFLAGS.
80 .if !defined(OS_VERSION)
81 _OS_VERSION_CMD=        ${UNAME} -r
82 OS_VERSION=             ${_OS_VERSION_CMD:sh}
83 MAKEFLAGS+=             OS_VERSION=${OS_VERSION:Q}
84 .endif
85
86 # Preload these for architectures not in all variations of bsd.own.mk,
87 # which do not match their GNU names exactly.
88 GNU_ARCH.arm26?=        arm
89 GNU_ARCH.arm32?=        arm
90 GNU_ARCH.i486?=         i386
91 GNU_ARCH.i586?=         i386
92 GNU_ARCH.i686?=         i386
93 GNU_ARCH.m68000?=       m68010
94 GNU_ARCH.mips?=         mipsel
95 GNU_ARCH.sh3eb?=        sh
96 GNU_ARCH.sh3el?=        shle
97 NATIVE_MACHINE_GNU_ARCH?=       ${GNU_ARCH.${NATIVE_MACHINE_ARCH}:U${NATIVE_MACHINE_ARCH}}
98 MACHINE_GNU_ARCH?=              ${GNU_ARCH.${MACHINE_ARCH}:U${MACHINE_ARCH}}
99
100 .if ${OPSYS} == "NetBSD"
101 LOWER_OPSYS?=           netbsd
102
103 .elif ${OPSYS} == "AIX"
104 LOWER_ARCH!=            _cpuid=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $$1 }'`; \
105                         if /usr/sbin/lsattr -El $$_cpuid | grep ' POWER' >/dev/null 2>&1; then \
106                                 echo rs6000; \
107                         else \
108                                 echo powerpc; \
109                         fi
110 MACHINE_ARCH?=          ${LOWER_ARCH}
111 .  if exists(/usr/bin/oslevel)
112 _OS_VERSION!=           /usr/bin/oslevel
113 .  else
114 _OS_VERSION!=           echo `${UNAME} -v`.`${UNAME} -r`
115 .  endif
116 OS_VERSION=             ${_OS_VERSION:C/\([0-9]*\.[0-9]*\).*/\1/}
117 LOWER_OPSYS_VERSUFFIX=  ${_OS_VERSION}
118 LOWER_OPSYS?=           aix
119 LOWER_VENDOR?=          ibm
120
121 .elif ${OPSYS} == "BSDOS"
122 LOWER_OPSYS?=           bsdi
123
124 .elif ${OPSYS} == "Darwin"
125 LOWER_OPSYS?=           darwin
126 LOWER_ARCH!=            ${UNAME} -p
127 MACHINE_ARCH=           ${LOWER_ARCH}
128 MAKEFLAGS+=             LOWER_ARCH=${LOWER_ARCH:Q}
129 LOWER_OPSYS_VERSUFFIX=  ${LOWER_OS_VERSION:C/([0-9]*).*/\1/}
130 LOWER_VENDOR?=          apple
131
132 .elif ${OPSYS} == "DragonFly"
133 OS_VERSION:=            ${OS_VERSION:C/-.*$//}
134 LOWER_OPSYS?=           dragonfly
135 LOWER_ARCH!=            ${UNAME} -p
136 MACHINE_ARCH=           ${LOWER_ARCH}
137 MAKEFLAGS+=             LOWER_ARCH=${LOWER_ARCH:Q}
138 LOWER_VENDOR?=          pc
139
140 .elif ${OPSYS} == "FreeBSD"
141 OS_VERSION:=            ${OS_VERSION:C/-.*$//}
142 LOWER_OPSYS?=           freebsd
143 LOWER_ARCH!=            ${UNAME} -p
144 .  if ${LOWER_ARCH} == "amd64"
145 MACHINE_ARCH=           x86_64
146 .  else
147 MACHINE_ARCH=           ${LOWER_ARCH}
148 .  endif
149 MAKEFLAGS+=             LOWER_ARCH=${LOWER_ARCH:Q}
150 LOWER_OPSYS_VERSUFFIX=  ${LOWER_OS_VERSION:C/([0-9]*).*/\1/}
151 .  if ${LOWER_ARCH} == "i386"
152 LOWER_VENDOR?=          pc
153 .  endif
154 LOWER_VENDOR?=          unknown
155
156 .elif ${OPSYS} == "Interix"
157 LOWER_OPSYS?=           interix
158 LOWER_OPSYS_VERSUFFIX?= 3
159 LOWER_VENDOR?=          pc
160 .  if exists(/usr/lib/libc.so.3.5)
161 OS_VERSION=             3.5
162 .  elif exists(/usr/lib/libc.so.3.1)
163 OS_VERSION=             3.1
164 .  else
165 OS_VERSION=             3.0
166 .  endif
167
168 .elif !empty(OPSYS:MIRIX*)
169 LOWER_ARCH!=            ${UNAME} -p
170 LOWER_OPSYS?=           irix
171 LOWER_OPSYS_VERSUFFIX?= ${OS_VERSION}
172 LOWER_VENDOR?=          sgi
173
174 .elif ${OPSYS} == "Linux"
175 OS_VERSION:=            ${OS_VERSION:C/-.*$//}
176 LOWER_OPSYS?=           linux
177 MACHINE_ARCH:=          ${MACHINE_ARCH:C/i.86/i386/}
178 MACHINE_ARCH:=          ${MACHINE_ARCH:C/ppc/powerpc/}
179 .  if !defined(LOWER_ARCH)
180 LOWER_ARCH!=            ${UNAME} -m | sed -e 's/i.86/i386/' -e 's/ppc/powerpc/'
181 .  endif # !defined(LOWER_ARCH)
182 .  if ${LOWER_ARCH} == "x86_64"
183 MACHINE_ARCH=           x86_64
184 .  endif
185 .  if ${MACHINE_ARCH} == "unknown" || ${MACHINE_ARCH} == ""
186 MACHINE_ARCH=           ${LOWER_ARCH}
187 MAKEFLAGS+=             LOWER_ARCH=${LOWER_ARCH:Q}
188 .  endif
189 .  if exists(/etc/debian_version)
190 LOWER_VENDOR?=          debian
191 .  elif exists(/etc/mandrake-release)
192 LOWER_VENDOR?=          mandrake
193 .  elif exists(/etc/redhat-version)
194 LOWER_VENDOR?=          redhat
195 .  elif exists(/etc/slackware-version)
196 LOWER_VENDOR?=          slackware
197 .  elif ${LOWER_ARCH} == "i386"
198 LOWER_VENDOR?=          pc
199 .  endif
200 LOWER_VENDOR?=          unknown
201
202 .elif ${OPSYS} == "OSF1"
203 LOWER_ARCH!=            ${UNAME} -p
204 MAKEFLAGS+=             LOWER_ARCH=${LOWER_ARCH:Q}
205 MACHINE_ARCH?=          ${LOWER_ARCH}
206 OS_VERSION:=            ${OS_VERSION:C/^V//}
207 LOWER_OPSYS?=           osf1
208 LOWER_OPSYS_VERSUFFIX?= ${OS_VERSION}
209 LOWER_VENDOR?=          dec
210
211 .elif ${OPSYS} == "HPUX"
212 OS_VERSION:=            ${OS_VERSION:C/^B.//}
213 .if ${MACHINE_ARCH} == "9000"
214 MACHINE_ARCH=           hppa
215 .endif
216 LOWER_OPSYS?=           hpux
217 LOWER_OPSYS_VERSUFFIX?= ${OS_VERSION}
218 LOWER_VENDOR?=          hp
219
220 .elif ${OPSYS} == "SunOS"
221 .  if ${MACHINE_ARCH} == "sparc"
222 SPARC_TARGET_ARCH?=     sparcv7
223 .  elif ${MACHINE_ARCH} == "sun4"
224 MACHINE_ARCH=           sparc
225 SPARC_TARGET_ARCH?=     sparcv7
226 .  elif ${MACHINE_ARCH} == "i86pc" || ${MACHINE_ARCH} == "i86xpv"
227 MACHINE_ARCH=           i386
228 .  elif ${MACHINE_ARCH} == "unknown"
229 .    if !defined(LOWER_ARCH)
230 LOWER_ARCH!=            ${UNAME} -p
231 .    endif      # !defined(LOWER_ARCH)
232 MAKEFLAGS+=             LOWER_ARCH=${LOWER_ARCH:Q}
233 .  endif
234 LOWER_VENDOR?=          sun
235 LOWER_OPSYS?=           solaris
236 LOWER_OPSYS_VERSUFFIX=  2
237
238 .elif !defined(LOWER_OPSYS)
239 LOWER_OPSYS:=           ${OPSYS:tl}
240 .endif
241
242 # Now commit the [LOWER_]OS_VERSION values computed above, eliding the :sh
243 OS_VERSION:=            ${OS_VERSION}
244 LOWER_OS_VERSION:=      ${OS_VERSION:tl}
245
246 MAKEFLAGS+=             LOWER_OPSYS=${LOWER_OPSYS:Q}
247
248 LOWER_VENDOR?=                  # empty ("arch--opsys")
249 LOWER_ARCH?=                    ${MACHINE_GNU_ARCH}
250 # Expand now as MACHINE_ARCH can be overriden in mk.conf and
251 # LOWER_ARCH is typically derived from it.
252 NATIVE_LOWER_ARCH:=             ${LOWER_ARCH}
253 NATIVE_MACHINE_ARCH:=           ${MACHINE_ARCH}
254
255 NATIVE_MACHINE_PLATFORM?=       ${OPSYS}-${OS_VERSION}-${NATIVE_MACHINE_ARCH}
256 MACHINE_PLATFORM?=              ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH}
257 NATIVE_MACHINE_GNU_PLATFORM?=   ${NATIVE_LOWER_ARCH}-${LOWER_VENDOR}-${LOWER_OPSYS:C/[0-9]//g}${APPEND_ELF}${LOWER_OPSYS_VERSUFFIX}
258 MACHINE_GNU_PLATFORM?=          ${LOWER_ARCH}-${LOWER_VENDOR}-${LOWER_OPSYS:C/[0-9]//g}${APPEND_ELF}${LOWER_OPSYS_VERSUFFIX}
259
260 # Needed to prevent an "install:" target from being created in bsd.own.mk.
261 NEED_OWN_INSTALL_TARGET=no
262
263 # This prevents default use of the cross-tool harness in the "src" tree,
264 # in the odd possible case of someone extracting "pkgsrc" underneath "src".
265 USETOOLS=               no
266 MAKE_ENV+=              USETOOLS=no
267
268 # Set this before <bsd.own.mk> does, since it doesn't know about Darwin
269 .if ${OPSYS} == "Darwin"
270 OBJECT_FMT?=            Mach-O
271 .endif
272
273 ACCEPTABLE_LICENSES?=   ${DEFAULT_ACCEPTABLE_LICENSES}
274
275 # Provide PKGPATH early on so that mk.conf can use it.
276 PKGPATH?=               ${.CURDIR:C|.*/([^/]*/[^/]*)$|\1|}
277
278 # Load the settings from MAKECONF, which is /etc/mk.conf by default.
279 .include <bsd.own.mk>
280
281 # /usr/share/mk/bsd.own.mk on NetBSD 1.3 does not define OBJECT_FMT
282 .if !empty(MACHINE_PLATFORM:MNetBSD-1.3*)
283 .  if ${MACHINE_ARCH} == "alpha" || \
284       ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \
285       ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "sparc64"
286 OBJECT_FMT?=            ELF
287 .  else
288 OBJECT_FMT?=            a.out
289 .  endif
290 # override what bootstrap-pkgsrc sets, which isn't right for NetBSD
291 # 1.4.
292 # XXX other ELF platforms in 1.4 need to be added to here.
293 .elif !empty(MACHINE_PLATFORM:MNetBSD-1.4*)
294 .  if ${MACHINE_ARCH} == "alpha" || \
295       ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \
296       ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "sparc64"
297 OBJECT_FMT=             ELF
298 .  else
299 OBJECT_FMT=             a.out
300 .  endif
301 .endif
302
303 .if ${OPSYS} == "OpenBSD"
304 .  if defined(ELF_TOOLCHAIN) && ${ELF_TOOLCHAIN} == "yes"
305 OBJECT_FMT?=    ELF
306 .  else
307 OBJECT_FMT?=    a.out
308 .  endif
309 .elif ${OPSYS} == "DragonFly"
310 OBJECT_FMT=     ELF
311 .elif ${OPSYS} == "AIX"
312 OBJECT_FMT=     XCOFF
313 .elif ${OPSYS} == "OSF1"
314 OBJECT_FMT=     ECOFF
315 .elif ${OPSYS} == "HPUX"
316 .  if ${MACHINE_ARCH} == "ia64" || (defined(ABI) && ${ABI} == "64")
317 OBJECT_FMT=     ELF
318 .  else
319 OBJECT_FMT=     SOM
320 .  endif
321 .endif
322
323 # Calculate depth
324 .if exists(${.CURDIR}/mk/bsd.pkg.mk)
325 _PKGSRC_TOPDIR= ${.CURDIR}
326 .elif exists(${.CURDIR}/../mk/bsd.pkg.mk)
327 _PKGSRC_TOPDIR= ${.CURDIR}/..
328 .elif exists(${.CURDIR}/../../mk/bsd.pkg.mk)
329 _PKGSRC_TOPDIR= ${.CURDIR}/../..
330 .endif
331
332 # include the defaults file
333 .include "${_PKGSRC_TOPDIR}/mk/defaults/mk.conf"
334
335 SHAREOWN?=              ${DOCOWN}
336 SHAREGRP?=              ${DOCGRP}
337 SHAREMODE?=             ${DOCMODE}
338
339 .if defined(PREFIX) && (${PREFIX} != ${__PREFIX_SET__})
340 .BEGIN:
341         @${ECHO_MSG} "You CANNOT set PREFIX manually or in mk.conf. Set LOCALBASE or X11BASE"
342         @${ECHO_MSG} "depending on your needs. See the pkg system documentation for more info."
343         @${FALSE}
344 .endif
345
346 # Load the OS-specific definitions for program variables.  Default to loading
347 # the NetBSD ones if an OS-specific file doesn't exist.
348 .if exists(${_PKGSRC_TOPDIR}/mk/platform/${OPSYS}.mk)
349 .  include "${_PKGSRC_TOPDIR}/mk/platform/${OPSYS}.mk"
350 .else
351 .  include "${_PKGSRC_TOPDIR}/mk/platform/NetBSD.mk"
352 PKG_FAIL_REASON+=       "missing mk/platform/${OPSYS}.mk"
353 .endif
354
355 PKGDIRMODE?=            755
356
357 # A meta-package is a package that does not have any files and whose
358 # only purpose is to depend on other packages, giving that collection
359 # a simple name.
360 #
361 # This variable must be set before including bsd.prefs.mk directly or
362 # indirectly.
363 #
364 # Keywords: meta meta-package META_PACKAGE
365 #
366 .if defined(META_PACKAGE)
367 PKG_DESTDIR_SUPPORT=    user-destdir
368 NO_CONFIGURE=           yes
369 NO_BUILD=               yes
370 DISTFILES=              # none
371 PLIST_SRC=              # none
372 do-patch:
373         @${DO_NADA}
374 do-install:
375         @${DO_NADA}
376 .endif
377
378 # PKG_DESTDIR_SUPPORT can only be one of "destdir" or "user-destdir".
379 USE_DESTDIR?=           no
380 PKG_DESTDIR_SUPPORT?=   # empty
381
382 .if empty(PKG_DESTDIR_SUPPORT) || (empty(USE_DESTDIR:M[Yy][Ee][Ss]) && empty(USE_DESTDIR:M[Ff][Uu][Ll][Ll]))
383 _USE_DESTDIR=           no
384 .elif ${PKG_DESTDIR_SUPPORT} == "user-destdir"
385 .  if !empty(USE_DESTDIR:M[Ff][Uu][Ll][Ll])
386 _USE_DESTDIR=           user-destdir
387 .  else
388 _USE_DESTDIR=           destdir
389 .  endif
390 .elif ${PKG_DESTDIR_SUPPORT} == "destdir"
391 _USE_DESTDIR=           destdir
392 .else
393 PKG_FAIL_REASON+=       "PKG_DESTDIR_SUPPORT must be \`\`destdir'' or \`\`user-destdir''."
394 .endif
395
396 # When using staged installation, everything gets installed into
397 # ${DESTDIR}${PREFIX} instead of ${PREFIX} directly.
398 #
399 .if ${_USE_DESTDIR} != "no"
400 DESTDIR=                ${WRKDIR}/.destdir
401 .  if ${_USE_DESTDIR} == "destdir"
402 _MAKE_PACKAGE_AS_ROOT=  yes
403 _MAKE_CLEAN_AS_ROOT=    yes
404 _MAKE_INSTALL_AS_ROOT=  yes
405 .  elif ${_USE_DESTDIR} == "user-destdir"
406 _MAKE_PACKAGE_AS_ROOT=  no
407 _MAKE_CLEAN_AS_ROOT=    no
408 _MAKE_INSTALL_AS_ROOT=  no
409 .  endif
410 .else
411 DESTDIR=
412 .endif
413
414 _MAKE_CLEAN_AS_ROOT?=   no
415 # Whether to run the clean target as root.
416 _MAKE_INSTALL_AS_ROOT?= yes
417 # Whether to run the install target as root.
418 _MAKE_PACKAGE_AS_ROOT?= yes
419 # Whether to run the package target as root.
420
421 # When cross-compilation support is requested, the following options
422 # must be specified as well or guessable:
423 # - MACHINE_ARCH is set to TARGET_ARCH if set.
424 # - CROSS_DESTDIR is guessed from MAKEOBJDIR and MACHINE_ARCH.
425 # - PKG_DBDIR is expanded and prefixed with CROSS_DESTDIR
426 # - DESTDIR support is required
427 #
428 # _CROSS_DESTDIR is set for internal use to avoid conditionalising
429 # the use.
430
431 .if !empty(USE_CROSS_COMPILE:M[yY][eE][sS])
432 .  if defined(TARGET_ARCH)
433 MACHINE_ARCH=   ${TARGET_ARCH}
434 .  endif
435 CROSS_DESTDIR?= ${MAKEOBJDIR}/destdir.${MACHINE_ARCH}
436 .  if !exists(${CROSS_DESTDIR}/usr/include/stddef.h)
437 PKG_FAIL_REASON+=       "The cross-compiling root ${CROSS_DESTDIR:Q} is incomplete"
438 .  else
439 _CROSS_DESTDIR= ${CROSS_DESTDIR}
440 .  endif
441 .endif
442
443 # Depends on MACHINE_ARCH override above
444 .if ${OPSYS} == "NetBSD"
445 .  if ${OBJECT_FMT} == "ELF" && \
446    (${MACHINE_GNU_ARCH} == "arm" || \
447     ${MACHINE_ARCH} == "i386" || \
448     ${MACHINE_ARCH} == "m68k" || \
449     ${MACHINE_ARCH} == "m68000" || \
450     ${MACHINE_GNU_ARCH} == "sh" || \
451     ${MACHINE_GNU_ARCH} == "shle" || \
452     ${MACHINE_ARCH} == "sparc" || \
453     ${MACHINE_ARCH} == "vax")
454 APPEND_ELF=             elf
455 .  endif
456 .endif
457
458 PKG_INSTALLATION_TYPES?= overwrite
459 # This is a whitespace-separated list of installation types supported
460 # by the package.
461 #
462 # *NOTE*: This variable *must* be set in the package Makefile *before*
463 #         the inclusion of bsd.prefs.mk.
464 #
465 # Possible: any of: overwrite, pkgviews
466 # Default: overwrite
467
468 # Set the style of installation to be performed for the package.  The
469 # funky make variable modifiers just select the first word of the value
470 # stored in the referenced variable.
471 #
472 .for _pref_ in ${PKG_INSTALLATION_PREFS}
473 .  if !empty(PKG_INSTALLATION_TYPES:M${_pref_})
474 PKG_INSTALLATION_TYPE?= ${PKG_INSTALLATION_TYPES:M${_pref_}:S/^/_pkginsttype_/1:M_pkginsttype_*:S/^_pkginsttype_//}
475 .  endif
476 .endfor
477 PKG_INSTALLATION_TYPE?= none
478
479 # if the system is IPv6-ready, compile with IPv6 support turned on.
480 .if empty(_OPSYS_HAS_INET6:M[nN][oO])
481 IPV6_READY=             YES
482 .else
483 IPV6_READY=             NO
484 .endif
485
486 LOCALBASE?=             /usr/pkg
487 X11_TYPE?=              native
488 .if !empty(X11_TYPE:Mnative)
489 .  if ${OPSYS} == "SunOS"
490 # On Solaris, we default to using OpenWindows for X11.
491 X11BASE?=       /usr/openwin
492 .  elif ${OPSYS} == "IRIX" || ${OPSYS} == "OSF1" || ${OPSYS} == "HPUX"
493 X11BASE?=       /usr
494 .  elif !empty(MACHINE_PLATFORM:MDarwin-9.*-*)
495 X11BASE?=       /usr/X11
496 .  elif exists(/usr/X11R7/lib/libX11.so)
497 X11BASE?=       /usr/X11R7
498 .  else
499 X11BASE?=       /usr/X11R6
500 .  endif
501 .endif
502 CROSSBASE?=     ${LOCALBASE}/cross
503
504 # If xpkgwedge.def is found, then clearly we're using xpkgwedge.
505 .if exists(${LOCALBASE}/lib/X11/config/xpkgwedge.def) || \
506     exists(${X11BASE}/lib/X11/config/xpkgwedge.def)
507 USE_XPKGWEDGE=  yes
508 .elif ${PKG_INSTALLATION_TYPE} == "pkgviews"
509 USE_XPKGWEDGE=          yes
510 .elif ${X11_TYPE} == "modular"
511 USE_XPKGWEDGE=  no
512 .else
513 USE_XPKGWEDGE?= yes
514 .endif
515
516 .if defined(FIX_SYSTEM_HEADERS) && ${FIX_SYSTEM_HEADERS} == "yes" && \
517     !defined(BOOTSTRAP_PKG) && \
518     exists(../../pkgtools/compat_headers/buildlink3.mk)
519 .  include "../../pkgtools/compat_headers/buildlink3.mk"
520 .endif
521
522 .if ${X11_TYPE} == "modular"
523 X11BASE=                ${LOCALBASE}
524 .endif
525
526 .if !empty(USE_XPKGWEDGE:M[Yy][Ee][Ss])
527 X11PREFIX=              ${LOCALBASE}
528 .else
529 X11PREFIX=              ${X11BASE}
530 .endif
531
532 # Default directory for font encodings
533 X11_ENCODINGSDIR?=      ${X11BASE}/lib/X11/fonts/encodings
534
535 DEPOT_SUBDIR?=          packages
536 DEPOTBASE=              ${LOCALBASE}/${DEPOT_SUBDIR}
537
538 # LINK_RPATH_FLAG publicly exports the linker flag used to set the
539 # run-time library search path.
540 #
541 .if defined(_OPSYS_LINKER_RPATH_FLAG)
542 LINKER_RPATH_FLAG=      ${_OPSYS_LINKER_RPATH_FLAG}
543 .else
544 LINKER_RPATH_FLAG?=     ${_LINKER_RPATH_FLAG}
545 .endif
546
547 # COMPILER_RPATH_FLAG publicly exports the compiler flag used to pass
548 # run-time library search path directives to the linker.
549 #
550 .if defined(_OPSYS_COMPILER_RPATH_FLAG)
551 COMPILER_RPATH_FLAG=    ${_OPSYS_COMPILER_RPATH_FLAG}
552 .else
553 COMPILER_RPATH_FLAG?=   ${_COMPILER_RPATH_FLAG}
554 .endif
555
556 # WHOLE_ARCHIVE_FLAG and NO_WHOLE_ARCHIVE_FLAG publically export the
557 # linker flags to extract all symbols from a static archive.
558 #
559 WHOLE_ARCHIVE_FLAG?=    ${_OPSYS_WHOLE_ARCHIVE_FLAG}
560 NO_WHOLE_ARCHIVE_FLAG?= ${_OPSYS_NO_WHOLE_ARCHIVE_FLAG}
561
562 USE_TOOLS?=     # empty
563
564 # Provide default values for TOOLs used by the top-level make.
565 USE_TOOLS+=     [ awk dirname echo grep pwd sed test true
566
567 # These tools are used by the top-level make only in certain packages and
568 # should eventually be moved into those particular package Makefiles.
569 #
570 USE_TOOLS+=     date tr
571
572 # These are tools used directly by bsd.prefs.mk and files included by
573 # bsd.prefs.mk.
574 #
575 USE_TOOLS+=     awk:pkgsrc cut:pkgsrc echo:pkgsrc pwd:pkgsrc            \
576                 sed:pkgsrc tr:pkgsrc uname:pkgsrc
577
578 .include "${_PKGSRC_TOPDIR}/mk/tools/defaults.mk"
579
580 .if !defined(_PKGSRCDIR)
581 _PKGSRCDIR!=            cd ${_PKGSRC_TOPDIR} && ${PWD_CMD}
582 MAKEFLAGS+=             _PKGSRCDIR=${_PKGSRCDIR:Q}
583 .endif
584 PKGSRCDIR=              ${_PKGSRCDIR}
585
586 DISTDIR?=               ${PKGSRCDIR}/distfiles
587 PACKAGES?=              ${PKGSRCDIR}/packages
588 TEMPLATES?=             ${PKGSRCDIR}/templates
589
590 PATCHDIR?=              ${.CURDIR}/patches
591 FILESDIR?=              ${.CURDIR}/files
592 PKGDIR?=                ${.CURDIR}
593
594 _PKGSRC_DEPS?=          # empty
595
596 # If WRKOBJDIR is set, use that tree to build
597 .if defined(WRKOBJDIR)
598 BUILD_DIR?=             ${WRKOBJDIR}/${PKGPATH}
599 .else
600 BUILD_DIR!=             cd ${.CURDIR} && ${PWD_CMD}
601 .endif
602
603 # If OBJHOSTNAME is set, use first component of hostname in directory name.
604 # If OBJMACHINE is set, use ${MACHINE_ARCH} in the working directory name.
605 #
606 .if defined(OBJHOSTNAME)
607 .  if !defined(_HOSTNAME)
608 _HOSTNAME!=             ${UNAME} -n
609 MAKEFLAGS+=             _HOSTNAME=${_HOSTNAME:Q}
610 .  endif
611 WRKDIR_BASENAME?=       work.${_HOSTNAME:C|\..*||}
612 MAKEFLAGS+=             OBJHOSTNAME=${OBJHOSTNAME:Q}
613 .elif defined(OBJMACHINE)
614 WRKDIR_BASENAME?=       work.${MACHINE_ARCH}
615 MAKEFLAGS+=             OBJMACHINE=${OBJMACHINE:Q}
616 .else
617 WRKDIR_BASENAME?=       work
618 .endif
619
620 WRKDIR?=                ${BUILD_DIR}/${WRKDIR_BASENAME}
621
622 # There are many uses for a common log file, so define one that may be
623 # picked up and used by tools.mk, bsd.buildlink3.mk, etc.
624 #
625 WRKLOG?=                ${WRKDIR}/.work.log
626
627 PKG_DEFAULT_OPTIONS?=   # empty
628 PKG_OPTIONS?=           # empty
629
630 # we want this *before* compiler.mk, so that compiler.mk paths override them
631 .if ${X11_TYPE} != "modular" && defined(USE_X11)
632 PREPEND_PATH+=          ${X11BASE}/bin
633 .endif
634 PREPEND_PATH+=          ${LOCALBASE}/bin
635
636 # Wrapper framework definitions
637 .include "wrapper/wrapper-defs.mk"
638
639 # Binary emulator framework definitions
640 .if defined(EMUL_PLATFORMS) && !empty(EMUL_PLATFORMS)
641 .  include "emulator/emulator-vars.mk"
642 .endif
643
644 # System features framework
645 .include "features/features-vars.mk"
646
647 # Package system flavor definitions
648 .include "flavor/bsd.flavor-vars.mk"
649
650 # Make variable definitions cache
651 .include "bsd.makevars.mk"
652
653 # If MAKECONF is defined, then pass it down to all recursive make
654 # processes invoked by pkgsrc.
655 #
656 PKGSRC_MAKE_ENV+=       ${MAKECONF:DMAKECONF=${MAKECONF:Q}}
657 RECURSIVE_MAKE=         ${SETENV} ${PKGSRC_MAKE_ENV} ${MAKE}
658
659 _VARGROUPS+=            dirs
660 _USER_VARS.dirs=        DISTDIR LOCALBASE PACKAGES PKG_SYSCONFDIR WRKOBJDIR
661 _PKG_VARS.dirs=         WRKSRC PATCHDIR FILESDIR PKGDIR
662 _SYS_VARS.dirs=         WRKDIR DESTDIR PKG_SYSCONFBASEDIR
663
664 .endif  # BSD_PKG_MK