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