Merge from vendor branch TNF:
[pkgsrc.git] / mk / bsd.prefs.mk
1 # $NetBSD: bsd.prefs.mk,v 1.199 2005/07/28 13:07:17 wiz Exp $
2 #
3 # Make file, included to get the site preferences, if any.  Should
4 # only be included by package Makefiles before any .if defined()
5 # statements or modifications to "passed" variables (CFLAGS, LDFLAGS, ...),
6 # to make sure any variables defined in /etc/mk.conf, $MAKECONF, or
7 # the system defaults (sys.mk and bsd.own.mk) are used.
8
9 # Do not recursively include mk.conf, redefine OPSYS, include bsd.own.mk, etc.
10
11 # Some variables defined here:
12 # OPSYS
13 # The operating system name, as returned by ``uname -s''.
14
15 .if !defined(BSD_PKG_MK)
16
17 # Let mk.conf know that this is pkgsrc.
18 BSD_PKG_MK=1
19 __PREFIX_SET__:=${PREFIX}
20
21 # Expand MAKE to a full path.
22 .if !defined(_MAKE)
23 _MAKE:= ${MAKE}
24 .  for _dir_ in ${PATH:C/\:/ /g}
25 .    if empty(_MAKE:M/*)
26 .      if exists(${_dir_}/${MAKE})
27 _MAKE:= ${_dir_}/${MAKE}
28 .      endif
29 .    endif
30 .  endfor
31 .  if !empty(_MAKE:M/*)
32 MAKEFLAGS+=     _MAKE=${_MAKE:Q}
33 .  endif
34 .endif
35 MAKE:=  ${_MAKE}
36
37 .if exists(/usr/bin/uname)
38 UNAME=/usr/bin/uname
39 .elif exists(/bin/uname)
40 UNAME=/bin/uname
41 .else
42 UNAME=echo Unknown
43 .endif
44
45 .if exists(/usr/bin/cut)
46 CUT=/usr/bin/cut
47 .elif exists(/bin/cut)
48 CUT=/bin/cut
49 .else
50 CUT=echo Unknown
51 .endif
52
53 .if !defined(OPSYS)
54 OPSYS!=                 ${UNAME} -s | tr -d /
55 .endif
56 MAKEFLAGS+=             OPSYS=${OPSYS}
57 .if !defined(OS_VERSION)
58 OS_VERSION!=            ${UNAME} -r
59 .endif
60 .if !defined(LOWER_OS_VERSION)
61 LOWER_OS_VERSION!=      echo ${OS_VERSION} | tr 'A-Z' 'a-z'
62 .endif
63 MAKEFLAGS+=             OS_VERSION=${OS_VERSION}
64
65 # Preload these for architectures not in all variations of bsd.own.mk.
66 GNU_ARCH.alpha?=        alpha
67 GNU_ARCH.arm26?=        arm
68 GNU_ARCH.arm32?=        arm
69 GNU_ARCH.i386?=         i386
70 GNU_ARCH.i486?=         i386
71 GNU_ARCH.i586?=         i386
72 GNU_ARCH.i686?=         i386
73 GNU_ARCH.m68000?=       m68010
74 GNU_ARCH.m68k?=         m68k
75 GNU_ARCH.mips?=         mipsel
76 GNU_ARCH.mipseb?=       mipseb
77 GNU_ARCH.mipsel?=       mipsel
78 GNU_ARCH.ns32k?=        ns32k
79 GNU_ARCH.powerpc?=      powerpc
80 GNU_ARCH.rs6000?=       rs6000
81 GNU_ARCH.sh3eb?=        sh
82 GNU_ARCH.sh3el?=        shle
83 GNU_ARCH.sparc?=        sparc
84 GNU_ARCH.sparc64?=      sparc64
85 GNU_ARCH.vax?=          vax
86 MACHINE_GNU_ARCH?=      ${GNU_ARCH.${MACHINE_ARCH}}
87
88 .if ${OPSYS} == "NetBSD"
89 LOWER_OPSYS?=           netbsd
90
91 .elif ${OPSYS} == "BSDOS"
92 LOWER_OPSYS?=           bsdi
93
94 .elif ${OPSYS} == "FreeBSD"
95 LOWER_OPSYS?=           freebsd
96 LOWER_ARCH!=            ${UNAME} -p
97 MACHINE_ARCH=           ${LOWER_ARCH}
98 MAKEFLAGS+=             LOWER_ARCH=${LOWER_ARCH}
99 LOWER_OPSYS_VERSUFFIX!= echo ${LOWER_OS_VERSION} | ${CUT} -c -1
100 .  if ${LOWER_ARCH} == "i386"
101 LOWER_VENDOR?=          pc
102 .  else
103 LOWER_VENDOR?=          unknown
104 .  endif
105
106 .elif ${OPSYS} == "DragonFly"
107 LOWER_OPSYS?=           dragonfly
108 LOWER_ARCH!=            ${UNAME} -p
109 MACHINE_ARCH=           ${LOWER_ARCH}
110 MAKEFLAGS+=             LOWER_ARCH=${LOWER_ARCH}
111 LOWER_OPSYS_VERSUFFIX!= echo ${LOWER_OS_VERSION} | ${CUT} -c -1
112 LOWER_VENDOR?=          pc
113
114 .elif ${OPSYS} == "SunOS"
115 .  if ${MACHINE_ARCH} == "sparc"
116 SPARC_TARGET_ARCH?=     sparcv7
117 .  elif ${MACHINE_ARCH} == "sun4"
118 MACHINE_ARCH=           sparc
119 SPARC_TARGET_ARCH?=     sparcv7
120 .  elif ${MACHINE_ARCH} == "i86pc"
121 MACHINE_ARCH=           i386
122 .  elif ${MACHINE_ARCH} == "unknown"
123 .    if !defined(LOWER_ARCH)
124 LOWER_ARCH!=            ${UNAME} -p
125 .    endif      # !defined(LOWER_ARCH)
126 MAKEFLAGS+=             LOWER_ARCH=${LOWER_ARCH}
127 .  endif
128 LOWER_VENDOR?=          sun
129 LOWER_OPSYS?=           solaris
130 LOWER_OPSYS_VERSUFFIX=  2
131
132 .elif ${OPSYS} == "Linux"
133 LOWER_OPSYS?=           linux
134 MACHINE_ARCH:=          ${MACHINE_ARCH:C/i.86/i386/}
135 MACHINE_ARCH:=          ${MACHINE_ARCH:C/ppc/powerpc/}
136 .  if !defined(LOWER_ARCH)
137 LOWER_ARCH!=            ${UNAME} -m | sed -e 's/i.86/i386/' -e 's/ppc/powerpc/'
138 .  endif # !defined(LOWER_ARCH)
139 .  if ${MACHINE_ARCH} == "unknown" || ${MACHINE_ARCH} == ""
140 MACHINE_ARCH=           ${LOWER_ARCH}
141 MAKEFLAGS+=             LOWER_ARCH=${LOWER_ARCH}
142 .  endif
143 .  if exists(/etc/debian_version)
144 LOWER_VENDOR?=          debian
145 .  elif exists(/etc/mandrake-release)
146 LOWER_VENDOR?=          mandrake
147 .  elif exists(/etc/redhat-version)
148 LOWER_VENDOR?=          redhat
149 .  elif exists(/etc/slackware-version)
150 LOWER_VENDOR?=          slackware
151 .  elif ${LOWER_ARCH} == "i386"
152 LOWER_VENDOR?=          pc
153 .  else
154 LOWER_VENDOR?=          unknown
155 .  endif
156
157 .elif ${OPSYS} == "Darwin"
158 LOWER_OPSYS?=           darwin
159 LOWER_ARCH!=            ${UNAME} -p
160 MACHINE_ARCH=           ${LOWER_ARCH}
161 MAKEFLAGS+=             LOWER_ARCH=${LOWER_ARCH}
162 LOWER_VENDOR?=          apple
163
164 .elif ${OPSYS:MIRIX*} != ""
165 LOWER_ARCH!=            ${UNAME} -p
166 LOWER_OPSYS?=           irix${OS_VERSION}
167 LOWER_VENDOR?=          sgi
168
169 .elif ${OPSYS} == "Interix"
170 LOWER_OPSYS?=           interix3
171 LOWER_VENDOR?=          pc
172
173 .elif ${OPSYS} == "OSF1"
174 LOWER_ARCH!=            ${UNAME} -p
175 MAKEFLAGS+=             LOWER_ARCH=${LOWER_ARCH}
176 MACHINE_ARCH?=          ${LOWER_ARCH}
177 OS_VERSION!=            echo ${OS_VERSION} | sed -e 's/^V//'
178 LOWER_OPSYS?=           osf${OS_VERSION}
179 LOWER_VENDOR?=          dec
180
181 .elif ${OPSYS} == "AIX"
182 LOWER_ARCH!=            _cpuid=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $$1 }'`; \
183                         if /usr/sbin/lsattr -El $$_cpuid | grep ' POWER' >/dev/null 2>&1; then \
184                                 echo rs6000; \
185                         else \
186                                 echo powerpc; \
187                         fi
188 MACHINE_ARCH?=          ${LOWER_ARCH}
189 .  if exists(/usr/bin/oslevel)
190 _OS_VERSION!=           /usr/bin/oslevel
191 .  else
192 _OS_VERSION!=           echo `${UNAME} -v`.`${UNAME} -r`
193 .  endif
194 OS_VERSION!=            echo ${_OS_VERSION} | sed -e 's,\([0-9]*\.[0-9]*\).*,\1,'
195 LOWER_OS_VERSION=       ${OS_VERSION}
196 LOWER_OPSYS_VERSUFFIX=  ${_OS_VERSION}
197 LOWER_OPSYS?=           aix
198 LOWER_VENDOR?=          ibm
199
200 .elif !defined(LOWER_OPSYS)
201 LOWER_OPSYS!=           echo ${OPSYS} | tr A-Z a-z
202 .endif
203
204 MAKEFLAGS+=             LOWER_OPSYS=${LOWER_OPSYS}
205
206 LOWER_VENDOR?=
207 LOWER_ARCH?=            ${MACHINE_GNU_ARCH}
208
209 MACHINE_PLATFORM?=      ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH}
210 MACHINE_GNU_PLATFORM?=  ${LOWER_ARCH}-${LOWER_VENDOR}-${LOWER_OPSYS}${APPEND_ELF}${LOWER_OPSYS_VERSUFFIX}
211
212 # Needed to prevent an "install:" target from being created in bsd.own.mk.
213 NEED_OWN_INSTALL_TARGET=no
214
215 # This prevents default use of the cross-tool harness in the "src" tree,
216 # in the odd possible case of someone extracting "pkgsrc" underneath "src".
217 USETOOLS=               no
218 MAKE_ENV+=              USETOOLS=no
219
220 # Set this before <bsd.own.mk> does, since it doesn't know about Darwin
221 .if ${OPSYS} == "Darwin"
222 OBJECT_FMT?=            Mach-O
223 .endif
224
225 .include <bsd.own.mk>
226
227 # /usr/share/mk/bsd.own.mk on NetBSD 1.3 does not define OBJECT_FMT
228 .if !empty(MACHINE_PLATFORM:MNetBSD-1.3*)
229 .  if ${MACHINE_ARCH} == "alpha" || \
230       ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \
231       ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "sparc64"
232 OBJECT_FMT?=            ELF
233 .  else
234 OBJECT_FMT?=            a.out
235 .  endif
236 # override what bootstrap-pkgsrc sets, which isn't right for NetBSD
237 # 1.4.
238 # XXX other ELF platforms in 1.4 need to be added to here.
239 .elif !empty(MACHINE_PLATFORM:MNetBSD-1.4*)
240 .  if ${MACHINE_ARCH} == "alpha" || \
241       ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \
242       ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "sparc64"
243 OBJECT_FMT=             ELF
244 .  else
245 OBJECT_FMT=             a.out
246 .  endif
247 .endif
248
249 .if ${OPSYS} == "OpenBSD"
250 .  if defined(ELF_TOOLCHAIN) && ${ELF_TOOLCHAIN} == "yes"
251 OBJECT_FMT?=    ELF
252 .  else
253 OBJECT_FMT?=    a.out
254 .  endif
255 .elif ${OPSYS} == "DragonFly"
256 OBJECT_FMT=     ELF
257 .elif ${OPSYS} == "AIX"
258 OBJECT_FMT=     XCOFF
259 .endif
260
261 # Calculate depth
262 .if exists(${.CURDIR}/mk/bsd.pkg.mk)
263 _PKGSRC_TOPDIR= ${.CURDIR}
264 .elif exists(${.CURDIR}/../mk/bsd.pkg.mk)
265 _PKGSRC_TOPDIR= ${.CURDIR}/..
266 .elif exists(${.CURDIR}/../../mk/bsd.pkg.mk)
267 _PKGSRC_TOPDIR= ${.CURDIR}/../..
268 .endif
269
270 # include the defaults file
271 .if exists(${_PKGSRC_TOPDIR}/mk/defaults/mk.conf)
272 .  include "${_PKGSRC_TOPDIR}/mk/defaults/mk.conf"
273 .endif
274
275 USE_TOOLS?=     # empty
276
277 # Provide default values for TOOLs used by the top-level make.
278 USE_TOOLS+=     [ awk dirname echo grep pwd sed test true
279
280 # These tools are used by the top-level make only in certain packages and
281 # should eventually be moved into those particular package Makefiles.
282 #
283 USE_TOOLS+=     date tr
284
285 .include "${_PKGSRC_TOPDIR}/mk/tools/defaults.mk"
286
287 .if ${OPSYS} == "NetBSD"
288 .  if ${OBJECT_FMT} == "ELF" && \
289    (${MACHINE_GNU_ARCH} == "arm" || \
290     ${MACHINE_ARCH} == "i386" || \
291     ${MACHINE_ARCH} == "m68k" || \
292     ${MACHINE_ARCH} == "m68000" || \
293     ${MACHINE_GNU_ARCH} == "sh" || \
294     ${MACHINE_GNU_ARCH} == "shle" || \
295     ${MACHINE_ARCH} == "sparc" || \
296     ${MACHINE_ARCH} == "vax")
297 APPEND_ELF=             elf
298 .  endif
299 .endif
300
301 SHAREOWN?=              ${DOCOWN}
302 SHAREGRP?=              ${DOCGRP}
303 SHAREMODE?=             ${DOCMODE}
304
305 .if defined(PREFIX) && (${PREFIX} != ${__PREFIX_SET__})
306 .BEGIN:
307         @${ECHO_MSG} "You can NOT set PREFIX manually or in mk.conf.  Set LOCALBASE or X11BASE"
308         @${ECHO_MSG} "depending on your needs.  See the pkg system documentation for more info."
309         @${FALSE}
310 .endif
311
312 # Preload all default values for CFLAGS, LDFLAGS, etc. before bsd.pkg.mk
313 # or a pkg Makefile modifies them.
314 .include <sys.mk>
315
316 # Load the OS-specific definitions for program variables.  Default to loading
317 # the NetBSD ones if an OS-specific file doesn't exist.
318 .if exists(${_PKGSRC_TOPDIR}/mk/platform/${OPSYS}.mk)
319 .  include "${_PKGSRC_TOPDIR}/mk/platform/${OPSYS}.mk"
320 .else
321 .  include "${_PKGSRC_TOPDIR}/mk/platform/NetBSD.mk"
322 PKG_FAIL_REASON+=       "missing mk/platform/${OPSYS}.mk"
323 .endif
324
325 PKGDIRMODE?=            755
326 PKG_PHASE?=             none
327 #
328 # The PHASES_AFTER_<phase> variables list every phase "greater than or
329 # equal to" <phase>.
330 #
331 ALL_PHASES=             ${PHASES_AFTER_FETCH}
332 PHASES_AFTER_FETCH=     fetch ${PHASES_AFTER_EXTRACT}
333 PHASES_AFTER_EXTRACT=   extract ${PHASES_AFTER_PATCH}
334 PHASES_AFTER_PATCH=     patch ${PHASES_AFTER_TOOLS}
335 PHASES_AFTER_TOOLS=     tools ${PHASES_AFTER_WRAPPER}
336 PHASES_AFTER_WRAPPER=   wrapper ${PHASES_AFTER_CONFIGURE}
337 PHASES_AFTER_CONFIGURE= configure ${PHASES_AFTER_BUILD}
338 PHASES_AFTER_BUILD=     build ${PHASES_AFTER_INSTALL}
339 PHASES_AFTER_INSTALL=   install ${PHASES_AFTER_PACKAGE}
340 PHASES_AFTER_PACKAGE=   package
341
342 # Set the style of installation to be performed for the package.  The
343 # funky make variable modifiers just select the first word of the value
344 # stored in the referenced variable.
345 #
346 .for _pref_ in ${PKG_INSTALLATION_PREFS}
347 .  if !empty(PKG_INSTALLATION_TYPES:M${_pref_})
348 PKG_INSTALLATION_TYPE?= ${PKG_INSTALLATION_TYPES:M${_pref_}:S/^/_pkginsttype_/1:M_pkginsttype_*:S/^_pkginsttype_//}
349 .  endif
350 .endfor
351 PKG_INSTALLATION_TYPE?= none
352
353 # if the system is IPv6-ready, compile with IPv6 support turned on.
354 .if defined(USE_INET6)
355 .  if empty(USE_INET6:M[Yy][Ee][Ss]) || defined(USE_SOCKS)
356 USE_INET6=              NO
357 .  else
358 USE_INET6=              YES
359 .  endif
360 .elif empty(_OPSYS_HAS_INET6:M[nN][oO]) && !defined(USE_SOCKS)
361 USE_INET6=              YES
362 .else
363 USE_INET6=              NO
364 .endif
365
366 LOCALBASE?=             ${DESTDIR}/usr/pkg
367 .if ${OPSYS} == "SunOS"
368 # On Solaris, we default to using OpenWindows for X11.
369 X11BASE?=       ${DESTDIR}/usr/openwin
370 .elif !defined(X11_TYPE) || defined(X11_TYPE) && !empty(X11_TYPE:Mnative)
371 X11BASE?=       ${DESTDIR}/usr/X11R6
372 .endif
373 CROSSBASE?=     ${LOCALBASE}/cross
374
375 # If xpkgwedge.def is found, then clearly we're using xpkgwedge.
376 .if exists(${LOCALBASE}/lib/X11/config/xpkgwedge.def) || \
377     exists(${X11BASE}/lib/X11/config/xpkgwedge.def)
378 USE_XPKGWEDGE=  yes
379 .else
380 USE_XPKGWEDGE?= yes
381 .endif
382
383 .if defined(_OPSYS_NEEDS_XPKGWEDGE) && \
384     !empty(_OPSYS_NEEDS_XPKGWEDGE:M[yY][eE][sS])
385 USE_XPKGWEDGE=  yes
386 .endif
387
388 .if ${PKG_INSTALLATION_TYPE} == "pkgviews"
389 USE_XPKGWEDGE=          yes
390 .endif
391
392 # Set X11PREFIX to reflect the install directory of X11 packages.
393 # Set XMKMF_CMD properly if xpkgwedge is installed.
394 #
395 # The check for the existence of ${X11BASE}/lib/X11/config/xpkgwedge.def
396 # is to catch users of xpkgwedge<1.0.
397 #
398 .if !empty(USE_XPKGWEDGE:M[Yy][Ee][Ss]) 
399 X11PREFIX=              ${LOCALBASE}
400 .else
401 X11PREFIX=              ${X11BASE}
402 .endif
403
404 DEPOT_SUBDIR?=          packages
405 DEPOTBASE=              ${LOCALBASE}/${DEPOT_SUBDIR}
406
407 # LINK_RPATH_FLAG publicly exports the linker flag used to set the
408 # run-time library search path.
409 #
410 .if defined(_OPSYS_LINKER_RPATH_FLAG)
411 LINKER_RPATH_FLAG=      ${_OPSYS_LINKER_RPATH_FLAG}
412 .else
413 LINKER_RPATH_FLAG?=     ${_LINKER_RPATH_FLAG}
414 .endif
415
416 # COMPILER_RPATH_FLAG publicly exports the compiler flag used to pass
417 # run-time library search path directives to the linker.
418 #
419 .if defined(_OPSYS_COMPILER_RPATH_FLAG)
420 COMPILER_RPATH_FLAG=    ${_OPSYS_COMPILER_RPATH_FLAG}
421 .else
422 COMPILER_RPATH_FLAG?=   ${_COMPILER_RPATH_FLAG}
423 .endif
424
425 # WHOLE_ARCHIVE_FLAG and NO_WHOLE_ARCHIVE_FLAG publically export the
426 # linker flags to extract all symbols from a static archive.
427 WHOLE_ARCHIVE_FLAG?=    ${_OPSYS_WHOLE_ARCHIVE_FLAG}
428 NO_WHOLE_ARCHIVE_FLAG?= ${_OPSYS_NO_WHOLE_ARCHIVE_FLAG}
429
430 .if !defined(DIGEST)
431 DIGEST:=                ${LOCALBASE}/bin/digest
432 MAKEFLAGS+=             DIGEST=${DIGEST}
433 .endif
434
435 # Only add the DIGEST_VERSION value to MAKEFLAGS when we know
436 # we've got a valid version number, retrieved from the digest(1)
437 # binary. This is different to PKGTOOLS_VERSION, since, in that
438 # case, the build dies when pkg_info(1) is out of date.
439
440 .if !exists(${DIGEST})
441 DIGEST_VERSION=         20010301
442 .elif !defined(DIGEST_VERSION)
443 DIGEST_VERSION!=        ${DIGEST} -V 2>/dev/null
444 MAKEFLAGS+=             DIGEST_VERSION=${DIGEST_VERSION}
445 .endif
446
447 # This is the package database directory for the default view.
448 PKG_DBDIR?=             ${DESTDIR}/var/db/pkg
449
450 # _PKG_DBDIR is the actual packages database directory where we register
451 # packages.
452 #
453 .if ${PKG_INSTALLATION_TYPE} == "overwrite"
454 _PKG_DBDIR=             ${PKG_DBDIR}
455 .elif ${PKG_INSTALLATION_TYPE} == "pkgviews"
456 _PKG_DBDIR=             ${DEPOTBASE}
457 .endif
458
459 PKG_ADD_CMD?=           ${PKG_TOOLS_BIN}/pkg_add
460 PKG_ADMIN_CMD?=         ${PKG_TOOLS_BIN}/pkg_admin
461 PKG_CREATE_CMD?=        ${PKG_TOOLS_BIN}/pkg_create
462 PKG_DELETE_CMD?=        ${PKG_TOOLS_BIN}/pkg_delete
463 PKG_INFO_CMD?=          ${PKG_TOOLS_BIN}/pkg_info
464 PKG_VIEW_CMD?=          ${PKG_TOOLS_BIN}/pkg_view
465 LINKFARM_CMD?=          ${PKG_TOOLS_BIN}/linkfarm
466
467 .if !defined(PKGTOOLS_VERSION)
468 PKGTOOLS_VERSION!=      ${PKG_INFO_CMD} -V 2>/dev/null || echo 20010302
469 MAKEFLAGS+=             PKGTOOLS_VERSION=${PKGTOOLS_VERSION}
470 .endif
471
472 # The binary pkg_install tools all need to consistently to refer to the
473 # correct package database directory.
474 #
475 .if ${PKGTOOLS_VERSION} < 20030823
476 PKGTOOLS_ENV?=          PKG_DBDIR=${_PKG_DBDIR}
477 PKGTOOLS_ARGS?=         # empty
478 .else
479 PKGTOOLS_ENV?=          # empty
480 PKGTOOLS_ARGS?=         -K ${_PKG_DBDIR}
481 .endif
482
483 # Views are rooted in ${LOCALBASE}, all packages are depoted in
484 # ${DEPOTBASE}, and the package database directory for the default view
485 # is in ${PKG_DBDIR}.
486 #
487 PKG_VIEW_ARGS?=         -W ${LOCALBASE} -d ${DEPOTBASE} -k ${PKG_DBDIR}
488
489 PKG_ADD?=               ${PKGTOOLS_ENV} ${PKG_ADD_CMD} ${PKGTOOLS_ARGS}
490 PKG_ADMIN?=             ${PKGTOOLS_ENV} ${PKG_ADMIN_CMD} ${PKGTOOLS_ARGS}
491 PKG_CREATE?=            ${PKGTOOLS_ENV} ${PKG_CREATE_CMD} ${PKGTOOLS_ARGS}
492 PKG_DELETE?=            ${PKGTOOLS_ENV} ${PKG_DELETE_CMD} ${PKGTOOLS_ARGS}
493 PKG_INFO?=              ${PKGTOOLS_ENV} ${PKG_INFO_CMD} ${PKGTOOLS_ARGS}
494 PKG_VIEW?=              ${PKGTOOLS_ENV} ${PKG_VIEW_CMD} ${PKG_VIEW_ARGS}
495 LINKFARM?=              ${LINKFARM_CMD}
496
497 # "${PKG_BEST_EXISTS} pkgpattern" prints out the name of the installed
498 # package that best matches pkgpattern.  Use this instead of
499 # "${PKG_INFO} -e pkgpattern" if the latter would return more than one
500 # package name.
501 #
502 PKG_BEST_EXISTS?=       ${PKG_ADMIN} -b -d ${_PKG_DBDIR} -S lsbest
503
504 .if exists(${LOCALBASE}/bsd/share/mk/zoularis.mk)
505 PKG_FAIL_REASON+=       'You appear to have a deprecated Zoularis installation.'
506 PKG_FAIL_REASON+=       'Please update your system to bootstrap-pkgsrc and remove the'
507 PKG_FAIL_REASON+=       '${LOCALBASE}/bsd directory.'
508 PKG_FAIL_REASON+=       'See http://mail-index.NetBSD.org/tech-pkg/2004/02/14/0004.html'
509 PKG_FAIL_REASON+=       'for more details.'
510 .endif
511
512 PKGPATH?=               ${.CURDIR:C|.*/([^/]*/[^/]*)$|\1|}
513 .if !defined(_PKGSRCDIR)
514 _PKGSRCDIR!=            cd ${_PKGSRC_TOPDIR} && ${PWD_CMD}
515 MAKEFLAGS+=             _PKGSRCDIR=${_PKGSRCDIR:Q}
516 .endif
517 PKGSRCDIR=              ${_PKGSRCDIR}
518
519 DISTDIR?=               ${PKGSRCDIR}/distfiles
520 PACKAGES?=              ${PKGSRCDIR}/packages
521 TEMPLATES?=             ${PKGSRCDIR}/templates
522
523 PATCHDIR?=              ${.CURDIR}/patches
524 SCRIPTDIR?=             ${.CURDIR}/scripts
525 FILESDIR?=              ${.CURDIR}/files
526 PKGDIR?=                ${.CURDIR}
527
528 _PKGSRC_DEPS?=          # empty
529
530 # If WRKOBJDIR is set, use that tree to build
531 .if defined(WRKOBJDIR)
532 BUILD_DIR?=             ${WRKOBJDIR}/${PKGPATH}
533 .else
534 BUILD_DIR!=             cd ${.CURDIR} && ${PWD_CMD}
535 .endif
536
537 # If OBJHOSTNAME is set, use first component of hostname in directory name.
538 # If OBJMACHINE is set, use ${MACHINE_ARCH} in the working directory name.
539 #
540 .if defined(OBJHOSTNAME)
541 .  if !defined(_HOSTNAME)
542 _HOSTNAME!=             ${UNAME} -n
543 MAKEFLAGS+=             _HOSTNAME=${_HOSTNAME}
544 .  endif
545 WRKDIR_BASENAME?=       work.${_HOSTNAME:C|\..*||}
546 MAKEFLAGS+=             OBJHOSTNAME=${OBJHOSTNAME}
547 .elif defined(OBJMACHINE)
548 WRKDIR_BASENAME?=       work.${MACHINE_ARCH}
549 MAKEFLAGS+=             OBJMACHINE=${OBJMACHINE}
550 .else
551 WRKDIR_BASENAME?=       work
552 .endif
553
554 WRKDIR?=                ${BUILD_DIR}/${WRKDIR_BASENAME}
555
556 # There are many uses for a common log file, so define one that may be
557 # picked up and used by tools.mk, bsd.buildlink3.mk, etc.
558 #
559 WRKLOG?=                ${WRKDIR}/.work.log
560
561 PKG_DEFAULT_OPTIONS?=   # empty
562 PKG_OPTIONS?=           # empty
563
564 # we want this *before* compiler.mk, so that compiler.mk paths override them
565 PREPEND_PATH+=          ${USE_X11:D${X11BASE}/bin} ${LOCALBASE}/bin
566
567 # Wrapper framework definitions
568 .include "${PKGSRCDIR}/mk/wrapper/wrapper-defs.mk"
569
570 # Make variable definitions cache
571 .include "${PKGSRCDIR}/mk/bsd.makevars.mk"
572
573 USE_TOOLS+=             awk:pkgsrc cut:pkgsrc echo:pkgsrc pwd:pkgsrc    \
574                         sed:pkgsrc tr:pkgsrc uname:pkgsrc
575
576 .endif  # BSD_PKG_MK