2001-11-21 14:09:08 +01:00
|
|
|
# $NetBSD: bsd.pkg.mk,v 1.856 2001/11/21 13:09:08 agc Exp $
|
1997-08-20 12:21:05 +02:00
|
|
|
#
|
1998-06-05 14:45:53 +02:00
|
|
|
# This file is in the public domain.
|
1997-08-20 12:21:05 +02:00
|
|
|
#
|
1998-06-05 14:45:53 +02:00
|
|
|
# This file is derived from bsd.port.mk - 940820 Jordan K. Hubbard.
|
1997-08-20 12:21:05 +02:00
|
|
|
#
|
1998-06-05 14:45:53 +02:00
|
|
|
# Please see the NetBSD packages(7) manual page for details on the
|
|
|
|
# that variables used in this make file template.
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
# Default sequence for "all" is: fetch checksum extract patch configure build
|
|
|
|
#
|
|
|
|
# Please read the comments in the targets section below, you
|
|
|
|
# should be able to use the pre-* or post-* targets/scripts
|
|
|
|
# (which are available for every stage except checksum) or
|
|
|
|
# override the do-* targets to do pretty much anything you want.
|
|
|
|
#
|
|
|
|
# NEVER override the "regular" targets unless you want to open
|
|
|
|
# a major can of worms.
|
|
|
|
|
Implement some parts of proposals posted to tech-pkg:
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
1999-05-24 20:42:00 +02:00
|
|
|
##### Include any preferences, if not already included, and common definitions
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
1998-08-28 16:03:48 +02:00
|
|
|
|
2001-10-12 17:40:56 +02:00
|
|
|
##### Pass information about desired toolchain to package build.
|
|
|
|
.if defined(USETOOLS)
|
|
|
|
MAKE_ENV+= USETOOLS="${USETOOLS}"
|
|
|
|
.endif
|
|
|
|
|
2000-09-09 20:45:16 +02:00
|
|
|
##### Build crypto packages by default.
|
|
|
|
MKCRYPTO?= yes
|
|
|
|
|
Implement some parts of proposals posted to tech-pkg:
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
1999-05-24 20:42:00 +02:00
|
|
|
CLEANDEPENDS?= NO
|
1999-08-21 03:17:59 +02:00
|
|
|
DEINSTALLDEPENDS?= NO # add -R to pkg_delete
|
1999-08-30 00:13:01 +02:00
|
|
|
REINSTALL?= NO # reinstall upon update
|
2000-08-31 04:32:32 +02:00
|
|
|
CHECK_SHLIBS?= YES # run check-shlibs after install
|
2001-01-05 19:03:14 +01:00
|
|
|
SHLIB_HANDLING?= YES # do automatic shared lib handling
|
1999-10-31 20:43:02 +01:00
|
|
|
NOCLEAN?= NO # don't clean up after update
|
Implement some parts of proposals posted to tech-pkg:
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
1999-05-24 20:42:00 +02:00
|
|
|
|
2000-07-06 17:37:49 +02:00
|
|
|
PKGSRCDIR?= ${.CURDIR:C|/[^/]*/[^/]*$||}
|
|
|
|
PKGPATH?= ${.CURDIR:C|.*/([^/]*/[^/]*)$|\1|}
|
2000-06-03 21:03:20 +02:00
|
|
|
PKGBASE?= ${PKGNAME:C/-[^-]*$//}
|
|
|
|
PKGVERSION?= ${PKGNAME:C/^.*-//}
|
2000-11-21 01:16:43 +01:00
|
|
|
PKGWILDCARD?= ${PKGBASE}-[0-9]*
|
2000-06-03 20:51:34 +02:00
|
|
|
|
1998-05-07 19:21:13 +02:00
|
|
|
DISTDIR?= ${PKGSRCDIR}/distfiles
|
1997-08-20 12:21:05 +02:00
|
|
|
_DISTDIR?= ${DISTDIR}/${DIST_SUBDIR}
|
1998-05-07 19:21:13 +02:00
|
|
|
PACKAGES?= ${PKGSRCDIR}/packages
|
|
|
|
TEMPLATES?= ${PKGSRCDIR}/templates
|
1997-09-28 02:44:15 +02:00
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
PATCHDIR?= ${.CURDIR}/patches
|
|
|
|
SCRIPTDIR?= ${.CURDIR}/scripts
|
|
|
|
FILESDIR?= ${.CURDIR}/files
|
2001-10-26 17:08:43 +02:00
|
|
|
.if exists(${.CURDIR}/pkg)
|
2001-11-14 22:38:29 +01:00
|
|
|
PKGDIR?= ${.CURDIR}/pkg
|
2001-10-26 17:08:43 +02:00
|
|
|
.else
|
2001-11-14 22:38:29 +01:00
|
|
|
PKGDIR?= ${.CURDIR}
|
2001-10-26 17:08:43 +02:00
|
|
|
.endif
|
1997-08-20 12:21:05 +02:00
|
|
|
|
2001-11-19 17:01:03 +01:00
|
|
|
.if defined(CONFDIR.${PKGBASE})
|
|
|
|
CONFDIR= ${CONFDIR.${PKGBASE}}
|
|
|
|
.else
|
|
|
|
CONFDIR?= ${PREFIX}/etc
|
|
|
|
.endif
|
|
|
|
|
2000-01-13 18:40:42 +01:00
|
|
|
.if defined(USE_JAVA)
|
|
|
|
BUILD_DEFS+= PKG_JVM JAVA_HOME
|
2001-07-19 00:43:32 +02:00
|
|
|
. if !defined(PKG_JVM)
|
|
|
|
. if ${MACHINE_PLATFORM:MNetBSD-*-i386} != "" || \
|
|
|
|
${MACHINE_PLATFORM:MLinux-*-i386} != ""
|
2000-01-13 18:40:42 +01:00
|
|
|
PKG_JVM?= jdk
|
2001-07-19 00:43:32 +02:00
|
|
|
. elif ${MACHINE_PLATFORM:MNetBSD-*-powerpc} != ""
|
2001-03-26 23:36:02 +02:00
|
|
|
PKG_JVM?= blackdown-jdk13
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2000-01-13 18:40:42 +01:00
|
|
|
PKG_JVM?= kaffe
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. endif
|
|
|
|
. if ${PKG_JVM} == "jdk"
|
2001-07-13 13:28:23 +02:00
|
|
|
DEPENDS+= jdk-*:../../lang/jdk
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(JDK_HOME)
|
2000-01-15 03:08:03 +01:00
|
|
|
JAVA_HOME?= ${JDK_HOME}
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2000-01-13 18:40:42 +01:00
|
|
|
JAVA_HOME?= ${LOCALBASE}/java
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. elif ${PKG_JVM} == "sun-jdk"
|
2001-07-13 13:28:23 +02:00
|
|
|
BUILD_DEPENDS+= sun-jdk-*:../../lang/sun-jdk13
|
|
|
|
DEPENDS+= sun-jre-*:../../lang/sun-jre13
|
|
|
|
|
2001-08-23 18:37:27 +02:00
|
|
|
JAVA_HOME?= ${LOCALBASE}/java
|
2001-07-19 00:43:32 +02:00
|
|
|
. elif ${PKG_JVM} == "blackdown-jdk13"
|
2001-03-26 23:36:02 +02:00
|
|
|
DEPENDS+= blackdown-jdk-*:../../lang/blackdown-jdk13
|
2001-07-13 13:28:23 +02:00
|
|
|
JAVA_HOME?= ${LOCALBASE}/java
|
2001-07-19 00:43:32 +02:00
|
|
|
. elif ${PKG_JVM} == "kaffe"
|
2000-06-03 22:03:37 +02:00
|
|
|
DEPENDS+= kaffe-[0-9]*:../../lang/kaffe
|
2000-01-13 18:40:42 +01:00
|
|
|
JAVA_HOME?= ${LOCALBASE}/kaffe
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. if exists(${JAVA_HOME}/lib/classes.zip:)
|
2000-04-25 00:39:11 +02:00
|
|
|
CLASSPATH?= ${JAVA_HOME}/lib/classes.zip:.
|
2001-07-13 13:28:23 +02:00
|
|
|
|
|
|
|
MAKE_ENV+= CLASSPATH=${CLASSPATH}
|
|
|
|
CONFIGURE_ENV+= CLASSPATH=${CLASSPATH}
|
|
|
|
SCRIPTS_ENV+= CLASSPATH=${CLASSPATH}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
2000-04-25 00:39:11 +02:00
|
|
|
PATH:= ${PATH}:${JAVA_HOME}/bin
|
2001-07-13 13:28:23 +02:00
|
|
|
MAKE_ENV+= JAVA_HOME=${JAVA_HOME}
|
|
|
|
CONFIGURE_ENV+= JAVA_HOME=${JAVA_HOME}
|
|
|
|
SCRIPTS_ENV+= JAVA_HOME=${JAVA_HOME}
|
2000-01-13 18:40:42 +01:00
|
|
|
.endif
|
|
|
|
|
2000-10-23 19:32:06 +02:00
|
|
|
# Set X11PREFIX to reflect the install directory of X11 packages.
|
2001-08-22 19:34:19 +02:00
|
|
|
# Set XMKMF_CMD properly if xpkgwedge is installed.
|
2000-10-23 19:32:06 +02:00
|
|
|
#
|
|
|
|
# The check for the existence of ${X11BASE}/lib/X11/config/xpkgwedge.def
|
|
|
|
# is to catch users of xpkgwedge<1.0.
|
|
|
|
#
|
2001-07-30 07:04:32 +02:00
|
|
|
XMKMF?= ${XMKMF_CMD} ${XMKMF_FLAGS} -a
|
|
|
|
XMKMF_FLAGS?= # empty
|
2000-10-23 19:32:06 +02:00
|
|
|
.if exists(${LOCALBASE}/lib/X11/config/xpkgwedge.def) || \
|
|
|
|
exists(${X11BASE}/lib/X11/config/xpkgwedge.def)
|
2000-06-28 17:02:31 +02:00
|
|
|
X11PREFIX= ${LOCALBASE}
|
2001-06-12 22:39:13 +02:00
|
|
|
XMKMF_CMD?= ${X11PREFIX}/bin/pkgxmkmf
|
2000-06-28 17:02:31 +02:00
|
|
|
.else
|
|
|
|
X11PREFIX= ${X11BASE}
|
2001-06-12 22:39:13 +02:00
|
|
|
XMKMF_CMD?= ${X11PREFIX}/bin/xmkmf
|
2001-07-02 23:06:51 +02:00
|
|
|
.endif
|
2000-06-28 17:02:31 +02:00
|
|
|
|
2001-11-11 10:46:51 +01:00
|
|
|
# Set the default BUILDLINK_DIR and BUILDLINK_X11_DIR so that if no
|
|
|
|
# buildlink.mk files are included, then they still points to a where headers
|
|
|
|
# and libraries for installed packages and X11R6 may be found, respectively.
|
2001-08-23 06:21:02 +02:00
|
|
|
#
|
2001-11-11 10:46:51 +01:00
|
|
|
BUILDLINK_DIR?= ${LOCALBASE}
|
2001-08-23 06:21:02 +02:00
|
|
|
BUILDLINK_X11_DIR?= ${X11BASE}
|
|
|
|
|
2001-09-14 03:52:40 +02:00
|
|
|
.if defined(USE_IMAKE) || defined(USE_X11BASE)
|
2001-07-19 00:43:32 +02:00
|
|
|
. if exists(${LOCALBASE}/lib/X11/config/xpkgwedge.def) || \
|
|
|
|
exists(${X11BASE}/lib/X11/config/xpkgwedge.def)
|
2001-07-02 23:06:51 +02:00
|
|
|
BUILD_DEPENDS+= xpkgwedge>=1.5:../../pkgtools/xpkgwedge
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
2000-07-31 04:49:47 +02:00
|
|
|
PREFIX= ${X11PREFIX}
|
1998-08-11 21:30:48 +02:00
|
|
|
.elif defined(USE_CROSSBASE)
|
|
|
|
PREFIX= ${CROSSBASE}
|
1998-08-12 03:30:13 +02:00
|
|
|
NO_MTREE= yes
|
1997-08-20 12:21:05 +02:00
|
|
|
.else
|
1998-08-11 21:30:48 +02:00
|
|
|
PREFIX= ${LOCALBASE}
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
1998-07-31 16:55:38 +02:00
|
|
|
|
2001-10-04 09:56:06 +02:00
|
|
|
# We need to make sure the buildlink-x11 package is not installed since it
|
|
|
|
# currently breaks builds that use imake.
|
|
|
|
#
|
2001-10-10 07:57:14 +02:00
|
|
|
.if defined(USE_IMAKE) && !defined(USE_BUILDLINK_X11)
|
2001-10-04 09:56:06 +02:00
|
|
|
. if exists(${LOCALBASE}/lib/X11/config/buildlinkX11.def) || \
|
|
|
|
exists(${X11BASE}/lib/X11/config/buildlinkX11.def)
|
|
|
|
IGNORE+= "${PKGNAME} uses imake, but the buildlink-x11 package was found." \
|
|
|
|
" Please deinstall it (pkg_delete buildlink-x11)."
|
|
|
|
. endif
|
2001-10-10 07:57:14 +02:00
|
|
|
.endif # USE_IMAKE && !USE_BUILDLINK_X11
|
2001-10-04 09:56:06 +02:00
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
.if defined(USE_GMAKE)
|
2001-03-27 05:19:43 +02:00
|
|
|
BUILD_DEPENDS+= gmake>=3.78:../../devel/gmake
|
1997-11-05 14:36:31 +01:00
|
|
|
MAKE_PROGRAM= ${GMAKE}
|
Implement some parts of proposals posted to tech-pkg:
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
1999-05-24 20:42:00 +02:00
|
|
|
GMAKE?= gmake
|
2001-06-07 17:40:15 +02:00
|
|
|
.else
|
2001-11-21 13:53:04 +01:00
|
|
|
. if defined(USE_IMAKE)
|
|
|
|
MAKE_PROGRAM= ${_IMAKE_MAKE}
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2001-06-07 17:40:15 +02:00
|
|
|
MAKE_PROGRAM= ${MAKE}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
2001-05-18 04:08:17 +02:00
|
|
|
CONFIGURE_ENV+= MAKE="${MAKE_PROGRAM}"
|
Implement some parts of proposals posted to tech-pkg:
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
1999-05-24 20:42:00 +02:00
|
|
|
|
1999-09-14 04:32:21 +02:00
|
|
|
.if defined(USE_KERBEROS)
|
|
|
|
RESTRICTED?= uses Kerberos encryption code
|
|
|
|
BUILD_DEFS+= KERBEROS
|
|
|
|
.endif
|
|
|
|
|
2000-08-27 04:15:49 +02:00
|
|
|
PERL5?= ${LOCALBASE}/bin/perl
|
2001-04-26 10:35:38 +02:00
|
|
|
PERL5_REQD?= 5.0
|
2001-05-09 04:13:01 +02:00
|
|
|
.if defined(USE_PERL5)
|
2001-04-26 10:35:38 +02:00
|
|
|
DEPENDS+= perl>=${PERL5_REQD}:../../lang/perl5
|
2001-07-19 00:43:32 +02:00
|
|
|
. if exists(${PERL5})
|
|
|
|
. if exists(${LOCALBASE}/share/mk/bsd.perl.mk)
|
|
|
|
. include "${LOCALBASE}/share/mk/bsd.perl.mk"
|
|
|
|
. elif !defined(PERL5_SITELIB) || !defined(PERL5_SITEARCH) || !defined(PERL5_ARCHLIB)
|
2000-10-18 01:56:19 +02:00
|
|
|
PERL5_SITELIB!= eval `${PERL5} -V:installsitelib 2>/dev/null`; \
|
2001-06-12 14:49:55 +02:00
|
|
|
${ECHO} $${installsitelib}
|
2000-10-18 01:56:19 +02:00
|
|
|
PERL5_SITEARCH!= eval `${PERL5} -V:installsitearch 2>/dev/null`; \
|
2001-06-12 14:49:55 +02:00
|
|
|
${ECHO} $${installsitearch}
|
2000-10-18 01:56:19 +02:00
|
|
|
PERL5_ARCHLIB!= eval `${PERL5} -V:installarchlib 2>/dev/null`; \
|
2001-06-12 14:49:55 +02:00
|
|
|
${ECHO} $${installarchlib}
|
2000-08-29 20:48:11 +02:00
|
|
|
MAKEFLAGS+= PERL5_SITELIB=${PERL5_SITELIB}
|
|
|
|
MAKEFLAGS+= PERL5_SITEARCH=${PERL5_SITEARCH}
|
|
|
|
MAKEFLAGS+= PERL5_ARCHLIB=${PERL5_ARCHLIB}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # !exists(bsd.perl.mk) && !defined(PERL5_*)
|
|
|
|
. endif # exists($PERL5)
|
2001-02-19 19:30:36 +01:00
|
|
|
.endif # USE_PERL5
|
Implement some parts of proposals posted to tech-pkg:
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
1999-05-24 20:42:00 +02:00
|
|
|
|
2001-05-14 15:44:23 +02:00
|
|
|
.if defined(USE_PYTHON)
|
|
|
|
PYTHON?= ${LOCALBASE}/bin/python
|
|
|
|
DEPENDS+= python>=1.6:../../lang/python
|
2001-07-19 00:43:32 +02:00
|
|
|
. if exists(${PYTHON})
|
2001-05-14 15:44:23 +02:00
|
|
|
BUILD_DEPENDS+= python-mk-*:../../pkgtools/python-mk
|
2001-07-19 00:43:32 +02:00
|
|
|
. if exists(${LOCALBASE}/share/mk/bsd.python.mk)
|
|
|
|
. include "${LOCALBASE}/share/mk/bsd.python.mk"
|
|
|
|
. endif
|
|
|
|
. endif
|
2001-05-14 15:44:23 +02:00
|
|
|
.endif
|
|
|
|
|
1999-11-23 00:42:21 +01:00
|
|
|
.if defined(USE_FORTRAN)
|
2001-07-19 00:43:32 +02:00
|
|
|
. if !exists(/usr/bin/f77)
|
1999-11-23 00:42:21 +01:00
|
|
|
PKG_FC?= f2c-f77
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1999-11-23 00:42:21 +01:00
|
|
|
# it is anticipated that once /usr/bin/f77 is more stable that the following
|
|
|
|
# default will be changed to f77. However, in the case where there is no
|
|
|
|
# /usr/bin/f77, the default will remain as f2c-f77.
|
|
|
|
PKG_FC?= f2c-f77
|
2001-07-19 00:43:32 +02:00
|
|
|
. if (${PKG_FC} == "f2c-f77")
|
2001-04-18 23:50:46 +02:00
|
|
|
# this is a DEPENDS not BUILD_DEPENDS because of the
|
|
|
|
# shared Fortran libs
|
2001-07-26 01:49:41 +02:00
|
|
|
. if defined(USE_BUILDLINK_ONLY)
|
|
|
|
. include "../../lang/f2c/buildlink.mk"
|
|
|
|
. else
|
2001-04-18 23:50:46 +02:00
|
|
|
DEPENDS+= f2c>=20001205nb3:../../lang/f2c
|
2001-07-26 01:49:41 +02:00
|
|
|
. endif
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1999-11-23 00:42:21 +01:00
|
|
|
FC= ${PKG_FC}
|
|
|
|
F77= ${PKG_FC}
|
2001-02-02 05:53:31 +01:00
|
|
|
CONFIGURE_ENV+= F77="${F77}"
|
|
|
|
CONFIGURE_ENV+= FFLAGS="${FFLAGS}"
|
1999-11-23 15:31:24 +01:00
|
|
|
MAKE_ENV+= F77="${F77}"
|
|
|
|
MAKE_ENV+= FC="${FC}"
|
1999-11-23 00:42:21 +01:00
|
|
|
.endif
|
|
|
|
|
1998-04-17 11:37:21 +02:00
|
|
|
.if defined(INFO_FILES)
|
|
|
|
USE_GTEXINFO= yes
|
|
|
|
.endif
|
Implement some parts of proposals posted to tech-pkg:
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
1999-05-24 20:42:00 +02:00
|
|
|
|
2000-11-21 01:16:43 +01:00
|
|
|
.if ((defined(NEED_NCURSES)) && (${NEED_NCURSES} == YES))
|
2000-07-28 12:33:56 +02:00
|
|
|
DEPENDS+= ncurses>=5.0:../../devel/ncurses
|
|
|
|
.endif
|
|
|
|
|
1999-02-11 15:44:00 +01:00
|
|
|
.if defined(USE_GTEXINFO) && !exists(/usr/bin/install-info)
|
2000-06-03 22:03:37 +02:00
|
|
|
DEPENDS+= gtexinfo-3.12:../../devel/gtexinfo
|
1998-04-17 11:37:21 +02:00
|
|
|
.endif
|
Implement some parts of proposals posted to tech-pkg:
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
1999-05-24 20:42:00 +02:00
|
|
|
|
2000-11-09 15:02:46 +01:00
|
|
|
# -lintl in CONFIGURE_ENV is to workaround broken gettext.m4
|
|
|
|
# (gettext.m4 does not add -lintl where it should, and fails to detect
|
|
|
|
# if libintl.a is genuine GNU gettext or not).
|
2001-11-21 13:58:15 +01:00
|
|
|
.if ${_DO_LIBINTL_CHECKS} == "yes"
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(USE_LIBINTL)
|
|
|
|
. if exists(/usr/include/libintl.h)
|
|
|
|
. if defined(GNU_CONFIGURE)
|
2001-06-12 22:30:09 +02:00
|
|
|
LIBS+= -lintl
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. else
|
2000-10-31 18:20:07 +01:00
|
|
|
DEPENDS+= gettext-lib>=0.10.35nb1:../../devel/gettext-lib
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(GNU_CONFIGURE)
|
2000-11-09 15:02:46 +01:00
|
|
|
CPPFLAGS+= -I${LOCALBASE}/include
|
2001-06-12 22:30:09 +02:00
|
|
|
LIBS+= -L${LOCALBASE}/lib -lintl
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. endif
|
|
|
|
. endif
|
2001-05-17 16:51:41 +02:00
|
|
|
.endif
|
2000-10-31 18:20:07 +01:00
|
|
|
|
2001-06-12 22:30:09 +02:00
|
|
|
# If GNU_CONFIGURE is defined, then pass LIBS to the GNU configure script.
|
|
|
|
.if defined(GNU_CONFIGURE)
|
2001-06-13 09:09:33 +02:00
|
|
|
CONFIGURE_ENV+= LIBS="${LIBS}"
|
2001-06-12 22:30:09 +02:00
|
|
|
.endif
|
|
|
|
|
2001-10-26 09:47:38 +02:00
|
|
|
LIBTOOL_REQD= 1.4.20010614nb4
|
1998-07-24 03:41:15 +02:00
|
|
|
.if defined(USE_LIBTOOL)
|
2000-06-01 13:23:11 +02:00
|
|
|
LIBTOOL= ${LOCALBASE}/bin/libtool
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(USE_LTDL)
|
2001-04-16 02:55:37 +02:00
|
|
|
DEPENDS+= libtool>=${LIBTOOL_REQD}:../../devel/libtool
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2001-08-27 17:05:54 +02:00
|
|
|
BUILD_DEPENDS+= libtool-base>=${LIBTOOL_REQD}:../../devel/libtool-base
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1998-08-19 17:21:20 +02:00
|
|
|
CONFIGURE_ENV+= LIBTOOL="${LIBTOOL} ${LIBTOOL_FLAGS}"
|
|
|
|
MAKE_ENV+= LIBTOOL="${LIBTOOL} ${LIBTOOL_FLAGS}"
|
1998-07-24 03:41:15 +02:00
|
|
|
.endif
|
1997-08-20 12:21:05 +02:00
|
|
|
|
2000-04-26 23:09:02 +02:00
|
|
|
.if defined(USE_SSL)
|
2001-07-19 00:43:32 +02:00
|
|
|
. if exists(/usr/include/openssl/ssl.h)
|
2000-04-26 23:16:10 +02:00
|
|
|
SSLBASE= /usr
|
2001-01-13 19:35:09 +01:00
|
|
|
SSLCERTS= /etc/openssl/certs
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2001-04-09 04:54:22 +02:00
|
|
|
DEPENDS+= openssl-0.9.[56]*:../../security/openssl
|
2000-04-26 23:16:10 +02:00
|
|
|
SSLBASE= ${LOCALBASE}
|
2001-01-13 19:35:09 +01:00
|
|
|
SSLCERTS= ${SSLBASE}/certs
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
2000-04-26 23:16:10 +02:00
|
|
|
BUILD_DEFS+= SSLBASE
|
2000-04-26 23:09:02 +02:00
|
|
|
.endif
|
|
|
|
|
2001-06-21 06:52:56 +02:00
|
|
|
.if defined(USE_XAW)
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(XAW_TYPE)
|
|
|
|
. if ${XAW_TYPE} == "xpm"
|
2000-06-03 22:03:37 +02:00
|
|
|
DEPENDS+= Xaw-Xpm-1.1:../../x11/Xaw-Xpm
|
2001-07-19 00:43:32 +02:00
|
|
|
. elif ${XAW_TYPE} == "3d"
|
2000-06-03 22:03:37 +02:00
|
|
|
DEPENDS+= Xaw3d-1.5:../../x11/Xaw3d
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. endif
|
2001-06-21 06:52:56 +02:00
|
|
|
.endif
|
1999-08-25 15:37:34 +02:00
|
|
|
|
2001-03-27 05:19:43 +02:00
|
|
|
.if defined(BUILD_USES_MSGFMT) && !exists(/usr/bin/msgfmt)
|
2001-06-16 06:11:30 +02:00
|
|
|
BUILD_DEPENDS+= gettext>=0.10.35nb1:../../devel/gettext
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if defined(BUILD_USES_GETTEXT_M4)
|
|
|
|
BUILD_DEPENDS+= {gettext-0.10.35nb1,gettext-m4-*}:../../devel/gettext-m4
|
2001-03-27 05:19:43 +02:00
|
|
|
.endif
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
# Don't change these!!! These names are built into the _TARGET_USE macro,
|
|
|
|
# there is no way to refer to them cleanly from within the macro AFAIK.
|
- The comment above the _COOKIE settings says "don't change these!!", so
use = to set them, not ?=.
- _DEPENDS_USE doesn't actually do any macro expansion, so save some
processing time by executing it exactly once (remove the .USE operator).
- Merge the IGNORE targets. Add an IGNORE target for depends and
check-depends (see bottom).
- Don't check for installation of a package in ${DEPENDS} when doing
a "make depends". Instead, let the return code of make fall through
(using && instead of ; in the last clause of each depend recursion block).
- Provide a variable IGNORE_FAIL: when set, causes the ignore message
to be printed (regardless of IGNORE_SILENT or ECHO_MSG setting) and the
build to fail with ${FALSE}. Used with the next addition:
- Add a new target, "check-depends", which is called as part of "real-fetch".
This validates whether the dependencies of a pkg to be built are installed,
and if not, whether those dependencies will prospectively build (will
not set IGNORE directly or indirectly through the various disable options).
Recurses to "depends" with a DEPENDS_TARGET of "check-depends".
...And now, it is no longer necessary to mark dependent pkgs as unusable
when their dependencies are unusable thanks to an incorrect LICENSE,
_FOR_PLATFORM setting, and so forth. The check-depends step will validate
everything before fetching a single file.
1999-05-25 01:04:52 +02:00
|
|
|
EXTRACT_COOKIE= ${WRKDIR}/.extract_done
|
|
|
|
CONFIGURE_COOKIE= ${WRKDIR}/.configure_done
|
|
|
|
INSTALL_COOKIE= ${WRKDIR}/.install_done
|
|
|
|
BUILD_COOKIE= ${WRKDIR}/.build_done
|
|
|
|
PATCH_COOKIE= ${WRKDIR}/.patch_done
|
|
|
|
PACKAGE_COOKIE= ${WRKDIR}/.package_done
|
1997-08-20 12:21:05 +02:00
|
|
|
|
2001-03-06 15:50:45 +01:00
|
|
|
# New message digest defs
|
|
|
|
DIGEST_ALGORITHM?= SHA1
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
# Miscellaneous overridable commands:
|
1999-11-29 20:48:15 +01:00
|
|
|
SHCOMMENT?= ${ECHO_MSG} >/dev/null '***'
|
2001-03-06 15:50:45 +01:00
|
|
|
|
2001-04-17 11:07:01 +02:00
|
|
|
DISTINFO_FILE?= ${.CURDIR}/distinfo
|
|
|
|
|
2000-03-25 18:17:37 +01:00
|
|
|
.if exists(/usr/bin/m4)
|
|
|
|
M4?= /usr/bin/m4
|
|
|
|
.endif
|
|
|
|
|
2001-10-01 19:14:40 +02:00
|
|
|
.if !defined(X11_BUILDLINK_MK)
|
|
|
|
. if defined(USE_X11BASE) || defined(USE_X11)
|
2001-07-02 23:06:51 +02:00
|
|
|
LDFLAGS+= -Wl,-R${X11BASE}/lib
|
|
|
|
LDFLAGS+= -L${X11BASE}/lib
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1998-09-14 19:07:46 +02:00
|
|
|
.endif
|
2001-11-21 14:02:52 +01:00
|
|
|
.if ${_USE_RPATH} == "yes"
|
2001-06-18 23:23:35 +02:00
|
|
|
LDFLAGS+= -Wl,-R${LOCALBASE}/lib
|
2001-10-30 14:53:15 +01:00
|
|
|
.endif
|
2001-06-18 23:23:35 +02:00
|
|
|
.if !defined(USE_BUILDLINK_ONLY)
|
|
|
|
LDFLAGS+= -L${LOCALBASE}/lib
|
|
|
|
.endif
|
1998-09-14 19:07:46 +02:00
|
|
|
MAKE_ENV+= LDFLAGS="${LDFLAGS}"
|
2000-03-25 18:17:37 +01:00
|
|
|
CONFIGURE_ENV+= LDFLAGS="${LDFLAGS}" M4="${M4}" YACC="${YACC}"
|
1998-09-14 19:07:46 +02:00
|
|
|
|
1998-06-10 10:02:08 +02:00
|
|
|
MAKE_FLAGS?=
|
1997-08-20 12:21:05 +02:00
|
|
|
MAKEFILE?= Makefile
|
2001-06-11 08:30:59 +02:00
|
|
|
MAKE_ENV+= PATH=${PATH}:${LOCALBASE}/bin:${X11BASE}/bin PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} X11BASE=${X11BASE} CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}"
|
2000-04-25 22:19:56 +02:00
|
|
|
|
2001-04-08 16:14:11 +02:00
|
|
|
.if exists(${ZOULARISBASE}/bin/ftp) # Zoularis
|
|
|
|
FETCH_CMD?= ${ZOULARISBASE}/bin/ftp
|
1997-08-20 12:21:05 +02:00
|
|
|
.else
|
|
|
|
FETCH_CMD?= /usr/bin/ftp
|
|
|
|
.endif
|
|
|
|
|
Implement some parts of proposals posted to tech-pkg:
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
1999-05-24 20:42:00 +02:00
|
|
|
TOUCH_FLAGS?= -f
|
1997-08-20 12:21:05 +02:00
|
|
|
|
Implement some parts of proposals posted to tech-pkg:
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
1999-05-24 20:42:00 +02:00
|
|
|
PATCH_STRIP?= -p0
|
1997-08-20 12:21:05 +02:00
|
|
|
PATCH_DIST_STRIP?= -p0
|
1998-06-18 13:45:33 +02:00
|
|
|
.if defined(PATCH_DEBUG) || defined(PKG_VERBOSE)
|
1997-08-20 12:21:05 +02:00
|
|
|
PATCH_DEBUG_TMP= yes
|
Implement some parts of proposals posted to tech-pkg:
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
1999-05-24 20:42:00 +02:00
|
|
|
PATCH_ARGS?= -d ${WRKSRC} -E ${PATCH_STRIP}
|
1997-08-20 12:21:05 +02:00
|
|
|
PATCH_DIST_ARGS?= -d ${WRKSRC} -E ${PATCH_DIST_STRIP}
|
|
|
|
.else
|
|
|
|
PATCH_DEBUG_TMP= no
|
Implement some parts of proposals posted to tech-pkg:
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
1999-05-24 20:42:00 +02:00
|
|
|
PATCH_ARGS?= -d ${WRKSRC} --forward --quiet -E ${PATCH_STRIP}
|
1997-08-20 12:21:05 +02:00
|
|
|
PATCH_DIST_ARGS?= -d ${WRKSRC} --forward --quiet -E ${PATCH_DIST_STRIP}
|
|
|
|
.endif
|
|
|
|
.if defined(BATCH)
|
|
|
|
PATCH_ARGS+= --batch
|
|
|
|
PATCH_DIST_ARGS+= --batch
|
|
|
|
.endif
|
2001-11-21 14:09:08 +01:00
|
|
|
PATCH_ARGS+= -V simple ${_PATCH_BACKUP_ARG} .orig
|
2000-12-06 17:29:16 +01:00
|
|
|
PATCH_FUZZ_FACTOR?= -F0 # Default to zero fuzz
|
1997-08-20 12:21:05 +02:00
|
|
|
|
2000-08-17 01:15:15 +02:00
|
|
|
# If the distfile has a tar.bz2 suffix, use bzcat in preference to gzcat,
|
|
|
|
# pulling in the "bzip2" package if necessary. [Note: this is only for
|
|
|
|
# the benefit of pre 1.5 NetBSD systems. "gzcat" on newer systems happily
|
|
|
|
# decodes bzip2.] Do likewise for ".zip" and ".lha" distfiles.
|
1999-02-13 12:06:47 +01:00
|
|
|
EXTRACT_SUFX?= .tar.gz
|
1999-04-01 16:07:52 +02:00
|
|
|
.if ${EXTRACT_SUFX} == ".tar.bz2"
|
2001-07-19 00:43:32 +02:00
|
|
|
. if exists(/usr/bin/bzcat)
|
2001-01-11 11:53:10 +01:00
|
|
|
BZCAT= /usr/bin/bzcat <
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
1999-02-13 12:06:47 +01:00
|
|
|
BZCAT= ${LOCALBASE}/bin/bzcat
|
2001-08-16 03:49:09 +02:00
|
|
|
BUILD_DEPENDS+= bzip2>=0.9.0b:../../archivers/bzip2
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # !exists bzcat
|
1999-04-08 20:43:42 +02:00
|
|
|
DECOMPRESS_CMD?= ${BZCAT}
|
2000-04-06 18:03:22 +02:00
|
|
|
.elif ${EXTRACT_SUFX} == ".tar"
|
|
|
|
DECOMPRESS_CMD?= ${CAT}
|
2000-06-25 06:26:56 +02:00
|
|
|
.elif ${EXTRACT_SUFX} == ".zip"
|
2001-04-04 09:47:33 +02:00
|
|
|
BUILD_DEPENDS+= unzip-*:../../archivers/unzip
|
2000-08-07 03:14:08 +02:00
|
|
|
EXTRACT_CMD?= unzip -Laq ${DOWNLOADED_DISTFILE}
|
2001-05-14 14:58:51 +02:00
|
|
|
.elif ${EXTRACT_SUFX} == ".lzh" || ${EXTRACT_SUFX} == ".lha"
|
2001-03-27 05:19:43 +02:00
|
|
|
BUILD_DEPENDS+= lha-114f:../../archivers/lha
|
2000-08-17 01:15:15 +02:00
|
|
|
EXTRACT_CMD?= lha xq ${DOWNLOADED_DISTFILE}
|
1999-04-01 16:07:52 +02:00
|
|
|
.else
|
|
|
|
DECOMPRESS_CMD?= ${GZCAT}
|
|
|
|
.endif
|
|
|
|
|
2000-05-17 05:32:43 +02:00
|
|
|
# Also need bzip2 for PATCHFILES with .bz2 suffix.
|
|
|
|
.if defined(PATCHFILES)
|
2001-07-19 00:43:32 +02:00
|
|
|
. if ${PATCHFILES:E} == "bz2" && ${EXTRACT_SUFX} != ".tar.bz2"
|
|
|
|
. if exists(/usr/bin/bzcat)
|
2000-05-17 05:32:43 +02:00
|
|
|
BZCAT= /usr/bin/bzcat
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2000-05-17 05:32:43 +02:00
|
|
|
BZCAT= ${LOCALBASE}/bin/bzcat
|
2001-08-16 03:49:09 +02:00
|
|
|
BUILD_DEPENDS+= bzip2>=0.9.0b:../../archivers/bzip2
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # !exists bzcat
|
|
|
|
. endif
|
2000-05-17 05:32:43 +02:00
|
|
|
.endif # defined(PATCHFILES)
|
|
|
|
|
1999-04-01 16:07:52 +02:00
|
|
|
# If this is empty, then everything gets extracted.
|
|
|
|
EXTRACT_ELEMENTS?=
|
|
|
|
|
2000-08-17 01:15:15 +02:00
|
|
|
# If EXTRACT_USING_PAX is defined, use pax in preference to (GNU) tar,
|
|
|
|
# and append 2 tar blocks of zero bytes on the end, in case the archive
|
|
|
|
# was written with a buggy version of GNU tar.
|
1999-03-30 11:46:27 +02:00
|
|
|
.if defined(EXTRACT_USING_PAX)
|
2001-04-05 01:14:37 +02:00
|
|
|
EXTRACT_CMD?= { ${DECOMPRESS_CMD} ${DOWNLOADED_DISTFILE} ; dd if=/dev/zero bs=10k count=2; } | ${PAX} -r ${EXTRACT_ELEMENTS}
|
1999-03-30 11:46:27 +02:00
|
|
|
.else
|
1999-09-27 19:08:43 +02:00
|
|
|
EXTRACT_CMD?= ${DECOMPRESS_CMD} ${DOWNLOADED_DISTFILE} | ${GTAR} -xf - ${EXTRACT_ELEMENTS}
|
1999-04-01 16:07:52 +02:00
|
|
|
.endif
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
# Figure out where the local mtree file is
|
|
|
|
.if !defined(MTREE_FILE)
|
2001-09-14 03:52:40 +02:00
|
|
|
. if defined(USE_IMAKE) || defined(USE_X11BASE)
|
1999-03-08 18:26:54 +01:00
|
|
|
MTREE_FILE= ${PKGSRCDIR}/mk/${OPSYS}.x11.dist
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
1999-03-08 18:26:54 +01:00
|
|
|
MTREE_FILE= ${PKGSRCDIR}/mk/${OPSYS}.pkg.dist
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1999-03-08 18:26:54 +01:00
|
|
|
.endif # ! MTREE_FILE
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
MTREE_ARGS?= -U -f ${MTREE_FILE} -d -e -p
|
|
|
|
|
1999-03-08 18:26:54 +01:00
|
|
|
# Debugging levels for this file, dependent on PKG_DEBUG_LEVEL definition
|
|
|
|
# 0 == normal, default, quiet operation
|
|
|
|
# 1 == all shell commands echoed before invocation
|
|
|
|
# 2 == shell "set -x" operation
|
|
|
|
PKG_DEBUG_LEVEL?= 0
|
|
|
|
_PKG_SILENT= @
|
|
|
|
_PKG_DEBUG=
|
|
|
|
|
|
|
|
.if ${PKG_DEBUG_LEVEL} > 0
|
|
|
|
_PKG_SILENT=
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if ${PKG_DEBUG_LEVEL} > 1
|
|
|
|
_PKG_DEBUG= set -x;
|
1997-09-28 02:44:15 +02:00
|
|
|
.endif
|
|
|
|
|
1998-09-15 19:05:04 +02:00
|
|
|
# If WRKOBJDIR is set, use that tree to build
|
|
|
|
.ifdef WRKOBJDIR
|
2000-06-03 21:10:48 +02:00
|
|
|
BUILD_DIR?= ${WRKOBJDIR}/${PKGPATH}
|
1998-09-15 19:05:04 +02:00
|
|
|
.else
|
|
|
|
BUILD_DIR?= ${.CURDIR}
|
|
|
|
.endif # WRKOBJDIR
|
|
|
|
|
|
|
|
# If OBJMACHINE is set, use ${MACHINE_ARCH} in the working directory name
|
|
|
|
.ifdef OBJMACHINE
|
1998-07-03 21:27:39 +02:00
|
|
|
WRKDIR_BASENAME?= work.${MACHINE_ARCH}
|
1998-09-15 19:05:04 +02:00
|
|
|
.else
|
1998-07-03 21:27:39 +02:00
|
|
|
WRKDIR_BASENAME?= work
|
1998-09-15 19:05:04 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
WRKDIR?= ${BUILD_DIR}/${WRKDIR_BASENAME}
|
2001-09-10 11:56:05 +02:00
|
|
|
WRKSRC?= ${WRKDIR}/${DISTNAME}
|
1998-09-15 19:05:04 +02:00
|
|
|
|
1998-03-08 15:55:04 +01:00
|
|
|
.if defined(NO_WRKSUBDIR)
|
2001-09-09 22:36:07 +02:00
|
|
|
.BEGIN:
|
|
|
|
@${ECHO_MSG} 'NO_WRKSUBDIR has been deprecated - please replace it with an explicit'
|
|
|
|
@${ECHO_MSG} 'assignment of WRKSRC= $${WRKDIR}'
|
|
|
|
@${FALSE}
|
1998-07-03 21:27:39 +02:00
|
|
|
.endif # NO_WRKSUBDIR
|
1998-03-08 15:55:04 +01:00
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
# A few aliases for *-install targets
|
1998-09-01 23:21:09 +02:00
|
|
|
INSTALL_PROGRAM?= \
|
1998-02-09 01:47:23 +01:00
|
|
|
${INSTALL} ${COPY} ${STRIPFLAG} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE}
|
1998-09-01 23:21:09 +02:00
|
|
|
INSTALL_SCRIPT?= \
|
1997-08-20 12:21:05 +02:00
|
|
|
${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE}
|
1998-09-01 23:21:09 +02:00
|
|
|
INSTALL_DATA?= \
|
1997-08-20 12:21:05 +02:00
|
|
|
${INSTALL} ${COPY} -o ${SHAREOWN} -g ${SHAREGRP} -m ${SHAREMODE}
|
1998-09-01 23:21:09 +02:00
|
|
|
INSTALL_MAN?= \
|
1997-08-20 12:21:05 +02:00
|
|
|
${INSTALL} ${COPY} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
|
1998-09-01 23:21:09 +02:00
|
|
|
INSTALL_PROGRAM_DIR?= \
|
1998-03-07 22:19:00 +01:00
|
|
|
${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m ${BINMODE}
|
1998-09-01 23:21:09 +02:00
|
|
|
INSTALL_SCRIPT_DIR?= \
|
1998-03-07 22:19:00 +01:00
|
|
|
${INSTALL_PROGRAM_DIR}
|
1998-09-01 23:21:09 +02:00
|
|
|
INSTALL_DATA_DIR?= \
|
1998-04-09 00:27:41 +02:00
|
|
|
${INSTALL} -d -o ${SHAREOWN} -g ${SHAREGRP} -m ${BINMODE}
|
1998-09-01 23:21:09 +02:00
|
|
|
INSTALL_MAN_DIR?= \
|
1998-04-09 14:47:02 +02:00
|
|
|
${INSTALL} -d -o ${MANOWN} -g ${MANGRP} -m ${BINMODE}
|
1997-08-20 12:21:05 +02:00
|
|
|
|
2001-06-12 15:17:01 +02:00
|
|
|
INSTALL_MACROS= BSD_INSTALL_PROGRAM="${INSTALL_PROGRAM}" \
|
|
|
|
BSD_INSTALL_SCRIPT="${INSTALL_SCRIPT}" \
|
|
|
|
BSD_INSTALL_DATA="${INSTALL_DATA}" \
|
|
|
|
BSD_INSTALL_MAN="${INSTALL_MAN}" \
|
|
|
|
BSD_INSTALL_PROGRAM_DIR="${INSTALL_PROGRAM_DIR}" \
|
|
|
|
BSD_INSTALL_SCRIPT_DIR="${INSTALL_SCRIPT_DIR}" \
|
|
|
|
BSD_INSTALL_DATA_DIR="${INSTALL_DATA_DIR}" \
|
|
|
|
BSD_INSTALL_MAN_DIR="${INSTALL_MAN_DIR}"
|
1997-08-20 12:21:05 +02:00
|
|
|
MAKE_ENV+= ${INSTALL_MACROS}
|
|
|
|
SCRIPTS_ENV+= ${INSTALL_MACROS}
|
|
|
|
|
|
|
|
# The user can override the NO_PACKAGE by specifying this from
|
|
|
|
# the make command line
|
|
|
|
.if defined(FORCE_PACKAGE)
|
2001-07-19 00:43:32 +02:00
|
|
|
. undef NO_PACKAGE
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
2001-02-16 14:06:17 +01:00
|
|
|
.if !defined(COMMENT)
|
2001-06-12 14:49:55 +02:00
|
|
|
COMMENT!= (${CAT} ${PKGDIR}/COMMENT || ${ECHO} -n "(no description)") 2>/dev/null
|
2001-02-16 14:06:17 +01:00
|
|
|
.endif
|
|
|
|
|
Implement some parts of proposals posted to tech-pkg:
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
1999-05-24 20:42:00 +02:00
|
|
|
DESCR= ${WRKDIR}/.DESCR
|
2001-11-09 09:58:19 +01:00
|
|
|
.if !defined(DESCR_SRC)
|
|
|
|
. if !exists(${PKGDIR}/DESCR) && exists(${.CURDIR}/DESCR)
|
|
|
|
DESCR_SRC?= ${.CURDIR}/DESCR
|
|
|
|
. else
|
2000-12-30 12:19:04 +01:00
|
|
|
DESCR_SRC?= ${PKGDIR}/DESCR
|
2001-11-09 09:58:19 +01:00
|
|
|
. endif
|
|
|
|
.endif
|
1998-09-17 16:03:48 +02:00
|
|
|
PLIST= ${WRKDIR}/.PLIST
|
2001-11-09 09:58:19 +01:00
|
|
|
.if !defined(PLIST_SRC)
|
|
|
|
. if !exists(${PKGDIR}/PLIST) && exists(${.CURDIR}/PLIST)
|
|
|
|
PLIST_SRC?= ${.CURDIR}/PLIST
|
|
|
|
. else
|
2000-12-30 12:19:04 +01:00
|
|
|
PLIST_SRC?= ${PKGDIR}/PLIST
|
2001-11-09 09:58:19 +01:00
|
|
|
. endif
|
|
|
|
.endif
|
1999-08-30 00:13:01 +02:00
|
|
|
DLIST= ${WRKDIR}/.DLIST
|
|
|
|
DDIR= ${WRKDIR}/.DDIR
|
1998-09-17 16:03:48 +02:00
|
|
|
|
2000-12-30 12:19:04 +01:00
|
|
|
|
1999-09-03 04:43:51 +02:00
|
|
|
# Set PLIST_SUBST to substitute "${variable}" to "value" in PLIST
|
2000-08-27 04:15:49 +02:00
|
|
|
PLIST_SUBST+= OPSYS=${OPSYS} \
|
|
|
|
OS_VERSION=${OS_VERSION} \
|
|
|
|
MACHINE_ARCH=${MACHINE_ARCH} \
|
|
|
|
MACHINE_GNU_ARCH=${MACHINE_GNU_ARCH} \
|
|
|
|
MACHINE_GNU_PLATFORM=${MACHINE_GNU_PLATFORM} \
|
|
|
|
LOWER_VENDOR=${LOWER_VENDOR} \
|
|
|
|
LOWER_OPSYS=${LOWER_OPSYS} \
|
2001-11-14 13:38:51 +01:00
|
|
|
PKGBASE=${PKGBASE} \
|
2001-01-21 23:41:03 +01:00
|
|
|
PKGNAME=${PKGNAME} \
|
2001-09-24 13:02:49 +02:00
|
|
|
PKGLOCALEDIR=${PKGLOCALEDIR} \
|
|
|
|
PKGVERSION=${PKGVERSION:C/nb[0-9]*$//} \
|
2001-11-01 21:37:17 +01:00
|
|
|
SVR4_PKGNAME=${SVR4_PKGNAME} \
|
2001-11-03 05:58:15 +01:00
|
|
|
CHGRP=${CHGRP:Q} \
|
|
|
|
CHMOD=${CHMOD:Q} \
|
|
|
|
CHOWN=${CHOWN:Q} \
|
2001-11-01 21:37:17 +01:00
|
|
|
MKDIR=${MKDIR:Q} \
|
|
|
|
RMDIR=${RMDIR:Q} \
|
|
|
|
TRUE=${TRUE:Q}
|
2000-08-29 20:48:11 +02:00
|
|
|
.if defined(PERL5_SITELIB)
|
|
|
|
PLIST_SUBST+= PERL5_SITELIB=${PERL5_SITELIB:S/^${LOCALBASE}\///}
|
|
|
|
.endif
|
|
|
|
.if defined(PERL5_SITEARCH)
|
|
|
|
PLIST_SUBST+= PERL5_SITEARCH=${PERL5_SITEARCH:S/^${LOCALBASE}\///}
|
|
|
|
.endif
|
|
|
|
.if defined(PERL5_ARCHLIB)
|
|
|
|
PLIST_SUBST+= PERL5_ARCHLIB=${PERL5_ARCHLIB:S/^${LOCALBASE}\///}
|
2000-08-29 00:43:07 +02:00
|
|
|
.endif
|
1999-08-31 11:20:21 +02:00
|
|
|
|
1998-09-17 16:03:48 +02:00
|
|
|
# Set INSTALL_FILE to be the name of any INSTALL file
|
|
|
|
.if !defined(INSTALL_FILE) && exists(${PKGDIR}/INSTALL)
|
|
|
|
INSTALL_FILE= ${PKGDIR}/INSTALL
|
2001-11-09 09:58:19 +01:00
|
|
|
.elif !defined(INSTALL_FILE) && exists(${.CURDIR}/INSTALL)
|
|
|
|
INSTALL_FILE= ${.CURDIR}/INSTALL
|
1998-09-17 16:03:48 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# Set DEINSTALL_FILE to be the name of any DEINSTALL file
|
|
|
|
.if !defined(DEINSTALL_FILE) && exists(${PKGDIR}/DEINSTALL)
|
|
|
|
DEINSTALL_FILE= ${PKGDIR}/DEINSTALL
|
2001-11-09 09:58:19 +01:00
|
|
|
.elif !defined(DEINSTALL_FILE) && exists(${.CURDIR}/DEINSTALL)
|
|
|
|
DEINSTALL_FILE= ${.CURDIR}/DEINSTALL
|
1998-09-17 16:03:48 +02:00
|
|
|
.endif
|
1997-08-20 12:21:05 +02:00
|
|
|
|
2001-11-14 22:04:43 +01:00
|
|
|
# If MESSAGE hasn't been defined, then set MESSAGE_SRC to be a space-separated
|
|
|
|
# list of files to be concatenated together to generate the MESSAGE file.
|
|
|
|
#
|
2001-01-29 12:34:21 +01:00
|
|
|
.if !defined(MESSAGE_SRC) && !defined(MESSAGE) && exists(${PKGDIR}/MESSAGE)
|
|
|
|
MESSAGE_SRC= ${PKGDIR}/MESSAGE
|
2001-11-09 09:58:19 +01:00
|
|
|
.elif !defined(MESSAGE_SRC) && !defined(MESSAGE) && exists(${.CURDIR}/MESSAGE)
|
|
|
|
MESSAGE_SRC= ${.CURDIR}/MESSAGE
|
2001-01-29 12:34:21 +01:00
|
|
|
.endif
|
|
|
|
|
|
|
|
.if defined(MESSAGE_SRC)
|
|
|
|
MESSAGE= ${WRKDIR}/.MESSAGE
|
|
|
|
|
|
|
|
# Set MESSAGE_SUBST to substitute "${variable}" to "value" in MESSAGE
|
|
|
|
MESSAGE_SUBST+= PKGNAME=${PKGNAME} \
|
|
|
|
PREFIX=${PREFIX} \
|
|
|
|
LOCALBASE=${LOCALBASE} \
|
|
|
|
X11PREFIX=${X11PREFIX} \
|
|
|
|
X11BASE=${X11BASE}
|
2001-11-14 22:04:43 +01:00
|
|
|
|
|
|
|
MESSAGE_SUBST_SED= ${MESSAGE_SUBST:S/=/}!/:S/$/!g/:S/^/ -e s!\\\${/}
|
1998-09-17 17:47:08 +02:00
|
|
|
.endif
|
|
|
|
|
2000-10-10 22:37:29 +02:00
|
|
|
PKG_ADD?= PKG_DBDIR=${PKG_DBDIR} ${PKG_TOOLS_BIN}/pkg_add
|
|
|
|
PKG_ADMIN?= PKG_DBDIR=${PKG_DBDIR} ${PKG_TOOLS_BIN}/pkg_admin
|
|
|
|
PKG_CREATE?= PKG_DBDIR=${PKG_DBDIR} ${PKG_TOOLS_BIN}/pkg_create
|
|
|
|
PKG_DELETE?= PKG_DBDIR=${PKG_DBDIR} ${PKG_TOOLS_BIN}/pkg_delete
|
|
|
|
PKG_INFO?= PKG_DBDIR=${PKG_DBDIR} ${PKG_TOOLS_BIN}/pkg_info
|
2000-01-07 13:24:14 +01:00
|
|
|
|
2001-03-06 15:50:45 +01:00
|
|
|
# Latest version of digest(1) required for pkgsrc
|
|
|
|
DIGEST_REQD= 20010302
|
|
|
|
|
|
|
|
uptodate-digest:
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
if [ ! -f ${DIGEST} -o ${DIGEST_VERSION} -lt ${DIGEST_REQD} ]; then \
|
|
|
|
case ${PKGNAME} in \
|
|
|
|
digest-*) \
|
|
|
|
;; \
|
|
|
|
*) \
|
2001-04-03 14:06:31 +02:00
|
|
|
{ cd ${PKGSRCDIR}/pkgtools/digest; \
|
2001-03-06 15:50:45 +01:00
|
|
|
${MAKE} clean; \
|
|
|
|
if [ -f ${DIGEST} ]; then \
|
|
|
|
${MAKE} ${MAKEFLAGS} deinstall; \
|
|
|
|
fi; \
|
2001-03-26 02:55:39 +02:00
|
|
|
${MAKE} ${MAKEFLAGS} ${DEPENDS_TARGET}; \
|
2001-04-03 14:06:31 +02:00
|
|
|
${MAKE} ${MAKEFLAGS} clean; } \
|
2001-03-26 02:55:39 +02:00
|
|
|
;; \
|
2001-03-06 15:50:45 +01:00
|
|
|
esac \
|
|
|
|
fi
|
|
|
|
|
2000-01-09 05:43:20 +01:00
|
|
|
# Latest version of pkgtools required for this file.
|
2001-03-06 17:00:15 +01:00
|
|
|
PKGTOOLS_REQD= 20010306
|
2000-01-09 05:43:20 +01:00
|
|
|
|
2001-03-23 17:02:23 +01:00
|
|
|
# Check that we are using up-to-date pkg_* tools with this file.
|
|
|
|
.if defined(ZOULARIS_VERSION)
|
|
|
|
uptodate-pkgtools: uptodate-zoularis
|
|
|
|
.else
|
2000-01-09 05:43:20 +01:00
|
|
|
uptodate-pkgtools:
|
2001-03-23 17:02:23 +01:00
|
|
|
.endif
|
2000-01-09 05:43:20 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
if [ ${PKGTOOLS_VERSION} -lt ${PKGTOOLS_REQD} ]; then \
|
|
|
|
case ${PKGNAME} in \
|
2001-03-07 10:52:53 +01:00
|
|
|
digest-*|pkg_install-*) \
|
2000-01-09 05:43:20 +01:00
|
|
|
;; \
|
|
|
|
*) \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${ECHO} "Your package tools need to be updated to ${PKGTOOLS_REQD:C|(....)(..)(..)|\1/\2/\3|} versions."; \
|
|
|
|
${ECHO} "The installed package tools were last updated on ${PKGTOOLS_VERSION:C|(....)(..)(..)|\1/\2/\3|}."; \
|
2001-03-15 14:31:04 +01:00
|
|
|
${ECHO} "Please \"make install\" in ../../pkgtools/pkg_install."; \
|
2000-01-09 05:43:20 +01:00
|
|
|
${FALSE} ;; \
|
|
|
|
esac \
|
|
|
|
fi
|
|
|
|
|
2001-03-23 17:02:23 +01:00
|
|
|
# Latest version of Zoularis required for this file.
|
|
|
|
ZOULARIS_REQD= 20010323
|
|
|
|
|
|
|
|
# Check that we are using up-to-date Zoularis.
|
|
|
|
.if defined(ZOULARIS_VERSION)
|
|
|
|
uptodate-zoularis:
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
if [ ${ZOULARIS_VERSION} -lt ${ZOULARIS_REQD} ]; then \
|
|
|
|
${ECHO} "Your Zoularis needs to be updated to the ${ZOULARIS_REQD:C|(....)(..)(..)|\1/\2/\3|} version."; \
|
|
|
|
${ECHO} "The installed Zoularis was last updated on ${ZOULARIS_VERSION:C|(....)(..)(..)|\1/\2/\3|}."; \
|
|
|
|
${FALSE}; \
|
|
|
|
fi
|
|
|
|
.endif
|
|
|
|
|
2000-01-09 05:43:20 +01:00
|
|
|
# Files to create for versioning and build information
|
|
|
|
BUILD_VERSION_FILE= ${WRKDIR}/.build_version
|
|
|
|
BUILD_INFO_FILE= ${WRKDIR}/.build_info
|
|
|
|
|
|
|
|
# Files containing size of pkg w/o and w/ all required pkgs
|
2000-06-27 01:53:33 +02:00
|
|
|
SIZE_PKG_FILE= ${WRKDIR}/.SizePkg
|
|
|
|
SIZE_ALL_FILE= ${WRKDIR}/.SizeAll
|
2000-01-09 05:43:20 +01:00
|
|
|
|
2001-01-29 02:56:51 +01:00
|
|
|
.ifndef PKG_ARGS_COMMON
|
2001-02-21 16:01:29 +01:00
|
|
|
PKG_ARGS_COMMON= -v -c -${COMMENT:Q}" " -d ${DESCR} -f ${PLIST}
|
2001-02-16 14:06:17 +01:00
|
|
|
PKG_ARGS_COMMON+= -l -b ${BUILD_VERSION_FILE} -B ${BUILD_INFO_FILE}
|
2001-01-29 02:56:51 +01:00
|
|
|
PKG_ARGS_COMMON+= -s ${SIZE_PKG_FILE} -S ${SIZE_ALL_FILE}
|
2001-06-12 15:17:01 +02:00
|
|
|
PKG_ARGS_COMMON+= -P "`${MAKE} ${MAKEFLAGS} run-depends-list PACKAGE_DEPENDS_QUICK=true | ${SORT} -u`"
|
2001-07-19 00:43:32 +02:00
|
|
|
. ifdef CONFLICTS
|
2001-01-29 02:56:51 +01:00
|
|
|
PKG_ARGS_COMMON+= -C "${CONFLICTS}"
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. ifdef INSTALL_FILE
|
2001-01-29 02:56:51 +01:00
|
|
|
PKG_ARGS_COMMON+= -i ${INSTALL_FILE}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. ifdef DEINSTALL_FILE
|
2001-01-29 02:56:51 +01:00
|
|
|
PKG_ARGS_COMMON+= -k ${DEINSTALL_FILE}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. ifdef MESSAGE
|
2001-01-29 12:34:21 +01:00
|
|
|
PKG_ARGS_COMMON+= -D ${MESSAGE}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. ifndef NO_MTREE
|
2001-01-29 02:56:51 +01:00
|
|
|
PKG_ARGS_COMMON+= -m ${MTREE_FILE}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
2001-01-29 02:56:51 +01:00
|
|
|
|
|
|
|
PKG_ARGS_INSTALL= -p ${PREFIX} ${PKG_ARGS_COMMON}
|
2001-03-30 00:08:21 +02:00
|
|
|
PKG_ARGS_BINPKG= -p ${PREFIX:S/^${DESTDIR}//} -L ${PREFIX} ${PKG_ARGS_COMMON}
|
2001-01-29 02:56:51 +01:00
|
|
|
.endif # !PKG_ARGS_COMMON
|
|
|
|
|
2000-01-09 05:43:20 +01:00
|
|
|
PKG_SUFX?= .tgz
|
2000-12-30 12:19:04 +01:00
|
|
|
#PKG_SUFX?= .tbz # bzip2(1) pkgs
|
2000-01-09 05:43:20 +01:00
|
|
|
# where pkg_add records its dirty deeds.
|
2000-03-09 14:54:50 +01:00
|
|
|
PKG_DBDIR?= ${DESTDIR}/var/db/pkg
|
2000-01-09 05:43:20 +01:00
|
|
|
|
2000-03-13 15:24:27 +01:00
|
|
|
# Define SMART_MESSAGES in /etc/mk.conf for messages giving the tree
|
2001-01-31 00:18:36 +01:00
|
|
|
# of dependencies for building, and the current target.
|
2000-03-13 15:19:15 +01:00
|
|
|
.ifdef SMART_MESSAGES
|
|
|
|
_PKGSRC_IN?= ===> ${.TARGET} [${PKGNAME}${_PKGSRC_DEPS}] ===
|
|
|
|
.else
|
|
|
|
_PKGSRC_IN?= ===
|
|
|
|
.endif
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
# Used to print all the '===>' style prompts - override this to turn them off.
|
|
|
|
ECHO_MSG?= ${ECHO}
|
|
|
|
|
1998-02-02 09:10:41 +01:00
|
|
|
# How to do nothing. Override if you, for some strange reason, would rather
|
|
|
|
# do something.
|
|
|
|
DO_NADA?= ${TRUE}
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
ALL_TARGET?= all
|
|
|
|
INSTALL_TARGET?= install
|
|
|
|
|
1997-11-05 14:36:31 +01:00
|
|
|
.if defined(USE_IMAKE) && !defined(NO_INSTALL_MANPAGES)
|
|
|
|
INSTALL_TARGET+= install.man
|
|
|
|
.endif
|
|
|
|
|
1998-05-29 11:21:43 +02:00
|
|
|
# If this host is behind a filtering firewall, use passive ftp(1)
|
|
|
|
.if defined(PASSIVE_FETCH)
|
|
|
|
FETCH_BEFORE_ARGS += -p
|
|
|
|
.endif
|
|
|
|
|
2001-09-14 03:52:40 +02:00
|
|
|
# If USE_MOTIF (deprecated) is set, then include motif.buildlink.mk for the
|
|
|
|
# Motif discovery logic.
|
|
|
|
#
|
1999-10-06 00:18:05 +02:00
|
|
|
.if defined(USE_MOTIF)
|
2001-09-14 03:52:40 +02:00
|
|
|
. include "../../mk/motif.buildlink.mk"
|
|
|
|
.endif
|
1999-10-06 00:18:05 +02:00
|
|
|
|
2001-07-02 10:02:33 +02:00
|
|
|
# If USE_XPM is set, depend on xpm.
|
2000-11-25 00:28:30 +01:00
|
|
|
.if defined(USE_XPM)
|
2001-07-19 00:43:32 +02:00
|
|
|
. if (defined(HAVE_BUILTIN_XPM) && (${HAVE_BUILTIN_XPM} == "NO"))
|
2000-08-24 00:22:53 +02:00
|
|
|
DEPENDS+= xpm-3.4k:../../graphics/xpm
|
2000-09-05 21:13:40 +02:00
|
|
|
XPMDIR_DEFAULT= ${X11PREFIX}
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2000-09-05 21:13:40 +02:00
|
|
|
XPMDIR_DEFAULT= ${X11BASE}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. undef __BUILTIN_XPM
|
2000-10-15 13:31:41 +02:00
|
|
|
.endif # USE_XPM
|
|
|
|
|
|
|
|
# If USE_MESA is set, depend on Mesa (or Mesa-glx if USE_GLX is defined and
|
|
|
|
# Mesa/GLX is not included in XFree86)
|
|
|
|
.if defined(USE_MESA)
|
2001-07-27 14:19:15 +02:00
|
|
|
. if (defined(USE_GLX) && defined(HAVE_BUILTIN_MESA) && ${HAVE_BUILTIN_MESA} == "NO")
|
2000-10-15 13:31:41 +02:00
|
|
|
DEPENDS+= Mesa-glx>=20000813:../../graphics/Mesa-glx
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2000-10-15 13:31:41 +02:00
|
|
|
DEPENDS+= Mesa>=3.2.1:../../graphics/Mesa
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. undef __BUILTIN_MESA
|
2000-10-15 13:31:41 +02:00
|
|
|
.endif # USE_MESA
|
2000-08-24 00:22:53 +02:00
|
|
|
|
2001-04-19 21:11:59 +02:00
|
|
|
# If USE_FREETYPE2 is set, depend on freetype2.
|
|
|
|
.if defined(USE_FREETYPE2)
|
2001-07-19 00:43:32 +02:00
|
|
|
. if ${HAVE_BUILTIN_FREETYPE2} == "NO"
|
2001-04-19 21:11:59 +02:00
|
|
|
DEPENDS+= freetype2>=2.0.1:../../graphics/freetype2
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. undef __BUILTIN_FREETYPE2
|
2001-04-19 21:11:59 +02:00
|
|
|
.endif # USE_FREETYPE2
|
|
|
|
|
2001-03-20 01:04:15 +01:00
|
|
|
# Check if we got "rman" with XFree86, for packages that need "rman".
|
|
|
|
.if defined(USE_RMAN)
|
2001-07-19 00:43:32 +02:00
|
|
|
. if !exists(${X11BASE}/bin/rman)
|
2001-03-20 01:04:15 +01:00
|
|
|
DEPENDS+= rman-3.0.9:../../textproc/rman
|
|
|
|
RMAN?= ${LOCALBASE}/bin/rman
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2001-03-20 01:04:15 +01:00
|
|
|
RMAN?= ${X11BASE}/bin/rman
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
2001-03-20 01:04:15 +01:00
|
|
|
.endif
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
# Popular master sites
|
|
|
|
MASTER_SITE_XCONTRIB+= \
|
2001-06-28 18:54:07 +02:00
|
|
|
ftp://uiarchive.uiuc.edu/pub/ftp/ftp.x.org/contrib/ \
|
|
|
|
ftp://sunsite.doc.ic.ac.uk/packages/X11/contrib/ \
|
|
|
|
ftp://ftp.gwdg.de/pub/x11/x.org/contrib/ \
|
|
|
|
ftp://ftp.sunet.se/pub/X11/contrib/ \
|
|
|
|
ftp://sunsite.sut.ac.jp/pub/archives/X11/contrib/ \
|
|
|
|
ftp://sunsite.icm.edu.pl/pub/X11/contrib/ \
|
|
|
|
ftp://ftp.task.gda.pl/mirror/ftp.x.org/contrib/ \
|
|
|
|
ftp://ftp.ntua.gr/pub/X11/contrib/ \
|
|
|
|
ftp://sunsite.cnlab-switch.ch/mirror/X11/contrib/ \
|
|
|
|
ftp://ftp.cica.es/pub/X/contrib/ \
|
|
|
|
ftp://ftp.unicamp.br/pub/X11/contrib/ \
|
1999-04-15 22:39:38 +02:00
|
|
|
ftp://ftp.uni-paderborn.de/pub/X11/contrib/ \
|
|
|
|
ftp://ftp.x.org/contrib/
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
MASTER_SITE_GNU+= \
|
1999-04-15 22:39:38 +02:00
|
|
|
ftp://ftp.gnu.org/pub/gnu/ \
|
2000-02-03 17:41:48 +01:00
|
|
|
ftp://ftp.cs.columbia.edu/archives/gnu/prep/ \
|
|
|
|
ftp://ftp.gwdg.de/pub/gnu/ \
|
2000-02-05 15:10:27 +01:00
|
|
|
ftp://ftp.progsoc.uts.edu.au/pub/gnu/
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
MASTER_SITE_PERL_CPAN+= \
|
2001-08-01 18:18:18 +02:00
|
|
|
ftp://ftp.loaded.net/pub/CPAN/modules/by-module/ \
|
2000-12-12 02:04:16 +01:00
|
|
|
ftp://ftp.freesoftware.com/pub/perl/CPAN/modules/by-module/ \
|
2001-02-17 16:55:47 +01:00
|
|
|
ftp://ftp.gmd.de/mirrors/CPAN/modules/by-module/ \
|
2000-12-12 02:04:16 +01:00
|
|
|
ftp://cpan.perl.org/CPAN/modules/by-module/
|
1997-08-20 12:21:05 +02:00
|
|
|
|
2000-02-01 17:30:07 +01:00
|
|
|
MASTER_SITE_R_CRAN+= \
|
|
|
|
http://cran.r-project.org/src/ \
|
|
|
|
ftp://cran.r-project.org/pub/R/src/ \
|
|
|
|
http://cran.at.r-project.org/src/ \
|
|
|
|
ftp://cran.at.r-project.org/pub/R/src/ \
|
|
|
|
http://cran.dk.r-project.org/src/ \
|
|
|
|
http://cran.ch.r-project.org/src/ \
|
|
|
|
http://cran.uk.r-project.org/src/ \
|
|
|
|
http://cran.us.r-project.org/src/ \
|
|
|
|
http://lib.stat.cmu.edu/R/CRAN/src/ \
|
|
|
|
ftp://ftp.biostat.washington.edu/mirrors/R/CRAN/src/ \
|
|
|
|
http://cran.stat.wisc.edu/src/ \
|
|
|
|
http://SunSITE.auc.dk/R/src/ \
|
|
|
|
http://www.stat.unipg.it/pub/stat/statlib/R/CRAN/src/ \
|
|
|
|
ftp://ftp.u-aizu.ac.jp/pub/lang/R/CRAN/src/ \
|
|
|
|
ftp://dola.snu.ac.kr/pub/R/CRAN/src/ \
|
|
|
|
http://stat.ethz.ch/CRAN/src/ \
|
|
|
|
http://www.stats.bris.ac.uk/R/src/
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
MASTER_SITE_TEX_CTAN+= \
|
1999-04-15 22:39:38 +02:00
|
|
|
ftp://ftp.cdrom.com/pub/tex/ctan/ \
|
1999-08-22 23:36:49 +02:00
|
|
|
ftp://ftp.wustl.edu/packages/TeX/ \
|
1999-04-15 22:39:38 +02:00
|
|
|
ftp://ftp.funet.fi/pub/TeX/CTAN/ \
|
|
|
|
ftp://ftp.tex.ac.uk/public/ctan/tex-archive/ \
|
|
|
|
ftp://ftp.dante.de/tex-archive/
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
MASTER_SITE_SUNSITE+= \
|
1999-04-15 22:39:38 +02:00
|
|
|
ftp://sunsite.unc.edu/pub/Linux/ \
|
2000-03-01 11:53:07 +01:00
|
|
|
ftp://ftp.infomagic.com/pub/mirrors/linux/sunsite/ \
|
|
|
|
ftp://ftp.informatik.rwth-aachen.de/pub/comp/Linux/sunsite.unc.edu/
|
1997-08-20 12:21:05 +02:00
|
|
|
|
1999-08-22 23:42:22 +02:00
|
|
|
MASTER_SITE_GNOME+= \
|
1999-08-22 23:36:10 +02:00
|
|
|
ftp://ftp.gnome.org/pub/GNOME/ \
|
|
|
|
ftp://ftp.sunet.se/pub/X11/GNOME/ \
|
2001-11-16 21:35:19 +01:00
|
|
|
ftp://ftp.tuwien.ac.at/hci/gnome.org/GNOME/
|
1999-08-22 23:36:10 +02:00
|
|
|
|
2000-11-11 15:46:57 +01:00
|
|
|
MASTER_SITE_SOURCEFORGE+= \
|
2001-10-03 09:57:04 +02:00
|
|
|
http://prdownloads.sourceforge.net/ \
|
2001-04-18 12:53:02 +02:00
|
|
|
ftp://ftp3.sourceforge.net/pub/sourceforge/ \
|
2001-03-19 18:05:02 +01:00
|
|
|
http://ftp2.sourceforge.net/ \
|
2001-10-03 09:57:04 +02:00
|
|
|
http://ftp1.sourceforge.net/ \
|
2000-11-11 15:46:57 +01:00
|
|
|
ftp://ftp.tuwien.ac.at/opsys/linux/sourceforge/
|
|
|
|
|
1999-04-22 17:50:42 +02:00
|
|
|
# Empty declaration to avoid "variable MASTER_SITES recursive" error
|
|
|
|
MASTER_SITES?=
|
|
|
|
PATCH_SITES?=
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
# The primary backup site.
|
1999-07-27 09:09:48 +02:00
|
|
|
MASTER_SITE_BACKUP?= \
|
|
|
|
ftp://ftp.netbsd.org/pub/NetBSD/packages/distfiles/ \
|
|
|
|
ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/
|
1999-11-20 22:15:49 +01:00
|
|
|
.if defined(DIST_SUBDIR)
|
2000-07-26 14:36:49 +02:00
|
|
|
_MASTER_SITE_BACKUP:= ${MASTER_SITE_BACKUP:=${DIST_SUBDIR}/}
|
|
|
|
. if defined(MASTER_SITE_OVERRIDE)
|
|
|
|
_MASTER_SITE_OVERRIDE:= ${MASTER_SITE_OVERRIDE:=${DIST_SUBDIR}/}
|
|
|
|
. endif # MASTER_SITE_OVERRIDE
|
|
|
|
.else # !DIST_SUBDIR
|
|
|
|
_MASTER_SITE_BACKUP:= ${MASTER_SITE_BACKUP}
|
|
|
|
. if defined(MASTER_SITE_OVERRIDE)
|
|
|
|
_MASTER_SITE_OVERRIDE:= ${MASTER_SITE_OVERRIDE}
|
|
|
|
. endif # MASTER_SITE_OVERRIDE
|
2000-02-25 06:46:27 +01:00
|
|
|
.endif # DIST_SUBDIR
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
# Where to put distfiles that don't have any other master site
|
|
|
|
MASTER_SITE_LOCAL?= \
|
1999-11-20 22:15:49 +01:00
|
|
|
${MASTER_SITE_BACKUP:=LOCAL_PORTS/}
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
# I guess we're in the master distribution business! :) As we gain mirror
|
|
|
|
# sites for distfiles, add them to this list.
|
|
|
|
.if !defined(MASTER_SITE_OVERRIDE)
|
2000-07-26 14:36:49 +02:00
|
|
|
MASTER_SITES+= ${_MASTER_SITE_BACKUP}
|
|
|
|
PATCH_SITES+= ${_MASTER_SITE_BACKUP}
|
1997-08-20 12:21:05 +02:00
|
|
|
.else
|
2000-07-26 14:36:49 +02:00
|
|
|
MASTER_SITES:= ${_MASTER_SITE_OVERRIDE} ${MASTER_SITES}
|
|
|
|
PATCH_SITES:= ${_MASTER_SITE_OVERRIDE} ${PATCH_SITES}
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
2000-07-26 14:36:49 +02:00
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
# Derived names so that they're easily overridable.
|
|
|
|
DISTFILES?= ${DISTNAME}${EXTRACT_SUFX}
|
|
|
|
PKGNAME?= ${DISTNAME}
|
2001-01-21 23:41:03 +01:00
|
|
|
SVR4_PKGNAME?= ${PKGNAME}
|
1997-08-20 12:21:05 +02:00
|
|
|
|
1998-08-06 11:51:20 +02:00
|
|
|
MAINTAINER?= packages@netbsd.org
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
ALLFILES?= ${DISTFILES} ${PATCHFILES}
|
1999-05-21 21:29:02 +02:00
|
|
|
CKSUMFILES?= ${ALLFILES}
|
|
|
|
.for __tmp__ in ${IGNOREFILES}
|
|
|
|
CKSUMFILES:= ${CKSUMFILES:N${__tmp__}}
|
|
|
|
.endfor
|
1997-08-20 12:21:05 +02:00
|
|
|
|
1998-08-15 00:10:53 +02:00
|
|
|
# List of all files, with ${DIST_SUBDIR} in front. Used for fetch and checksum.
|
1997-08-20 12:21:05 +02:00
|
|
|
.if defined(DIST_SUBDIR)
|
2001-07-19 00:43:32 +02:00
|
|
|
. if ${CKSUMFILES} != ""
|
1997-08-20 12:21:05 +02:00
|
|
|
_CKSUMFILES?= ${CKSUMFILES:S/^/${DIST_SUBDIR}\//}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1998-08-15 00:10:53 +02:00
|
|
|
_DISTFILES?= ${DISTFILES:S/^/${DIST_SUBDIR}\//}
|
1997-08-20 12:21:05 +02:00
|
|
|
_IGNOREFILES?= ${IGNOREFILES:S/^/${DIST_SUBDIR}\//}
|
1998-08-15 00:10:53 +02:00
|
|
|
_PATCHFILES?= ${PATCHFILES:S/^/${DIST_SUBDIR}\//}
|
1997-08-20 12:21:05 +02:00
|
|
|
.else
|
|
|
|
_CKSUMFILES?= ${CKSUMFILES}
|
1998-08-15 00:10:53 +02:00
|
|
|
_DISTFILES?= ${DISTFILES}
|
1997-08-20 12:21:05 +02:00
|
|
|
_IGNOREFILES?= ${IGNOREFILES}
|
1998-08-15 00:10:53 +02:00
|
|
|
_PATCHFILES?= ${PATCHFILES}
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# This is what is actually going to be extracted, and is overridable
|
|
|
|
# by user.
|
|
|
|
EXTRACT_ONLY?= ${DISTFILES}
|
|
|
|
|
1998-08-06 11:51:20 +02:00
|
|
|
.if !defined(CATEGORIES) || !defined(DISTNAME)
|
1998-08-05 21:25:08 +02:00
|
|
|
.BEGIN:
|
1998-08-06 11:51:20 +02:00
|
|
|
@${ECHO_MSG} "CATEGORIES and DISTNAME are mandatory."
|
1998-08-05 21:25:08 +02:00
|
|
|
@${FALSE}
|
1998-01-25 15:39:49 +01:00
|
|
|
.endif
|
1997-08-20 12:21:05 +02:00
|
|
|
|
1998-08-05 21:25:08 +02:00
|
|
|
.if defined(LIB_DEPENDS)
|
1997-08-20 12:21:05 +02:00
|
|
|
.BEGIN:
|
1999-04-15 22:39:38 +02:00
|
|
|
@${ECHO_MSG} "LIB_DEPENDS is deprecated and must be replaced with DEPENDS."
|
|
|
|
@${FALSE}
|
|
|
|
.endif
|
|
|
|
|
2000-11-11 20:13:41 +01:00
|
|
|
.if defined(PKG_PATH)
|
|
|
|
.BEGIN:
|
|
|
|
@${ECHO_MSG} "Please unset PKG_PATH before doing pkgsrc works!"
|
|
|
|
@${FALSE}
|
|
|
|
.endif
|
|
|
|
|
1999-04-15 22:39:38 +02:00
|
|
|
.if defined(MASTER_SITE_SUBDIR)
|
|
|
|
.BEGIN:
|
|
|
|
@${ECHO_MSG} 'MASTER_SITE_SUBDIR is deprecated and must be replaced with MASTER_SITES.'
|
|
|
|
@${FALSE}
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if defined(PATCH_SITE_SUBDIR)
|
|
|
|
.BEGIN:
|
|
|
|
@${ECHO_MSG} 'PATCH_SITE_SUBDIR is deprecated and must be replaced with PATCH_SITES.'
|
1997-08-20 12:21:05 +02:00
|
|
|
@${FALSE}
|
|
|
|
.endif
|
|
|
|
|
1999-05-24 22:39:35 +02:00
|
|
|
.if defined(ONLY_FOR_ARCHS) || defined(NOT_FOR_ARCHS) \
|
|
|
|
|| defined(ONLY_FOR_OPSYS) || defined(NOT_FOR_OPSYS)
|
|
|
|
.BEGIN:
|
|
|
|
@${ECHO_MSG} 'ONLY/NOT_FOR_ARCHS/OPSYS are deprecated and must be replaced with ONLY/NOT_FOR_PLATFORM.'
|
|
|
|
@${FALSE}
|
|
|
|
.endif
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
PKGREPOSITORYSUBDIR?= All
|
|
|
|
PKGREPOSITORY?= ${PACKAGES}/${PKGREPOSITORYSUBDIR}
|
|
|
|
PKGFILE?= ${PKGREPOSITORY}/${PKGNAME}${PKG_SUFX}
|
|
|
|
|
2000-03-27 10:43:05 +02:00
|
|
|
CONFIGURE_SCRIPT?= ./configure
|
1998-01-15 23:58:59 +01:00
|
|
|
CONFIGURE_ENV+= PATH=${PATH}:${LOCALBASE}/bin:${X11BASE}/bin
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
.if defined(GNU_CONFIGURE)
|
Implement some parts of proposals posted to tech-pkg:
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
1999-05-24 20:42:00 +02:00
|
|
|
CONFIGURE_ARGS+= --host=${MACHINE_GNU_PLATFORM} --prefix=${PREFIX}
|
1997-08-20 12:21:05 +02:00
|
|
|
HAS_CONFIGURE= yes
|
2001-07-19 00:43:32 +02:00
|
|
|
. if ${X11PREFIX} == ${LOCALBASE}
|
2001-08-22 19:34:19 +02:00
|
|
|
. if !defined(X11_BUILDLINK_MK)
|
1999-07-01 16:33:36 +02:00
|
|
|
CONFIGURE_ARGS+= --x-libraries=${X11BASE}/lib --x-includes=${X11BASE}/include
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. endif
|
2001-07-05 06:47:27 +02:00
|
|
|
.endif
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
# Passed to most of script invocations
|
1998-01-15 23:58:59 +01:00
|
|
|
SCRIPTS_ENV+= CURDIR=${.CURDIR} DISTDIR=${DISTDIR} \
|
1998-06-05 14:45:53 +02:00
|
|
|
PATH=${PATH}:${LOCALBASE}/bin:${X11BASE}/bin \
|
|
|
|
WRKDIR=${WRKDIR} WRKSRC=${WRKSRC} PATCHDIR=${PATCHDIR} \
|
|
|
|
SCRIPTDIR=${SCRIPTDIR} FILESDIR=${FILESDIR} \
|
|
|
|
PKGSRCDIR=${PKGSRCDIR} DEPENDS="${DEPENDS}" \
|
|
|
|
PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} X11BASE=${X11BASE}
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
.if defined(BATCH)
|
|
|
|
SCRIPTS_ENV+= BATCH=yes
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.MAIN: all
|
|
|
|
|
1998-07-14 13:36:11 +02:00
|
|
|
# Use aliases, so that all versions of English are acceptable
|
|
|
|
.if defined(LICENCE) && !defined(LICENSE)
|
|
|
|
LICENSE= ${LICENCE}
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if defined(ACCEPTABLE_LICENCES) && !defined(ACCEPTABLE_LICENSES)
|
|
|
|
ACCEPTABLE_LICENSES= ${ACCEPTABLE_LICENCES}
|
|
|
|
.endif
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
################################################################
|
1999-08-10 12:48:23 +02:00
|
|
|
# Many ways to disable a package.
|
1997-08-20 12:21:05 +02:00
|
|
|
#
|
1999-08-10 12:48:23 +02:00
|
|
|
# If we're in BATCH mode and the package is interactive, or we're
|
2000-09-07 17:26:52 +02:00
|
|
|
# in interactive mode and the package is non-interactive, skip
|
|
|
|
# all the important targets. The reason we have two modes is that
|
|
|
|
# one might want to leave a build in BATCH mode running overnight,
|
|
|
|
# then come back in the morning and do _only_ the interactive ones
|
|
|
|
# that required your intervention.
|
1997-08-20 12:21:05 +02:00
|
|
|
#
|
2000-09-07 04:29:40 +02:00
|
|
|
# Ignore packages that can't be resold if building for a CDROM.
|
2000-09-06 22:28:32 +02:00
|
|
|
#
|
2000-09-07 17:26:52 +02:00
|
|
|
# Don't build a package if it's restricted and we don't want to
|
|
|
|
# get into that.
|
|
|
|
#
|
2000-09-09 20:45:16 +02:00
|
|
|
# Don't build any package that utilizes strong cryptography, for
|
|
|
|
# when the law of the land forbids it.
|
|
|
|
#
|
2000-09-07 17:26:52 +02:00
|
|
|
# Don't attempt to build packages against X if we don't have X.
|
1997-08-20 12:21:05 +02:00
|
|
|
#
|
1999-08-10 12:48:23 +02:00
|
|
|
# Don't build a package if it's broken.
|
1997-08-20 12:21:05 +02:00
|
|
|
################################################################
|
|
|
|
|
|
|
|
.if !defined(NO_IGNORE)
|
2001-07-19 00:43:32 +02:00
|
|
|
. if (defined(IS_INTERACTIVE) && defined(BATCH))
|
2000-08-19 17:32:15 +02:00
|
|
|
IGNORE+= "${PKGNAME} is an interactive package"
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. if (!defined(IS_INTERACTIVE) && defined(INTERACTIVE))
|
2000-08-19 17:32:15 +02:00
|
|
|
IGNORE+= "${PKGNAME} is not an interactive package"
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. if (defined(NO_BIN_ON_CDROM) && defined(FOR_CDROM))
|
2000-08-19 17:32:15 +02:00
|
|
|
IGNORE+= "${PKGNAME} may not be placed in binary form on a CDROM:" \
|
|
|
|
" "${NO_BIN_ON_CDROM:Q}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. if (defined(NO_SRC_ON_CDROM) && defined(FOR_CDROM))
|
2000-08-19 17:32:15 +02:00
|
|
|
IGNORE+= "${PKGNAME} may not be placed in source form on a CDROM:" \
|
|
|
|
" "${NO_SRC_ON_CDROM:Q}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. if (defined(RESTRICTED) && defined(NO_RESTRICTED))
|
2000-08-19 17:32:15 +02:00
|
|
|
IGNORE+= "${PKGNAME} is restricted:" \
|
|
|
|
" "${RESTRICTED:Q}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. if !(${MKCRYPTO} == "YES" || ${MKCRYPTO} == yes)
|
|
|
|
. if (defined(CRYPTO) || defined(USE_SSL))
|
2000-09-09 20:45:16 +02:00
|
|
|
IGNORE+= "${PKGNAME} may not be built, because it utilizes strong cryptography"
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
2000-09-09 20:45:16 +02:00
|
|
|
. endif
|
2001-09-14 03:52:40 +02:00
|
|
|
. if ((defined(USE_IMAKE) || defined(USE_X11BASE) || defined(USE_X11)) && \
|
1998-06-20 16:01:28 +02:00
|
|
|
!exists(${X11BASE}))
|
2000-08-19 17:32:15 +02:00
|
|
|
IGNORE+= "${PKGNAME} uses X11, but ${X11BASE} not found"
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. if defined(BROKEN)
|
2000-08-19 17:32:15 +02:00
|
|
|
IGNORE+= "${PKGNAME} is marked as broken:" ${BROKEN:Q}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
2000-08-19 17:32:15 +02:00
|
|
|
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(LICENSE)
|
|
|
|
. ifdef ACCEPTABLE_LICENSES
|
|
|
|
. for _lic in ${ACCEPTABLE_LICENSES}
|
|
|
|
. if ${LICENSE} == "${_lic}"
|
1998-07-06 17:10:48 +02:00
|
|
|
_ACCEPTABLE= yes
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # LICENSE == _lic
|
|
|
|
. endfor # _lic
|
|
|
|
. endif # ACCEPTABLE_LICENSES
|
|
|
|
. ifndef _ACCEPTABLE
|
2001-02-15 14:49:04 +01:00
|
|
|
IGNORE+= "${PKGNAME} has an unacceptable license: ${LICENSE}." \
|
2000-08-19 17:32:15 +02:00
|
|
|
" To build this package, add this line to your /etc/mk.conf:" \
|
|
|
|
" ACCEPTABLE_LICENSES+=${LICENSE}"
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # _ACCEPTABLE
|
|
|
|
. endif # LICENSE
|
2000-08-19 17:32:15 +02:00
|
|
|
|
2000-05-31 00:36:53 +02:00
|
|
|
# Define __PLATFORM_OK only if the OS matches the pkg's allowed list.
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(ONLY_FOR_PLATFORM) && !empty(ONLY_FOR_PLATFORM)
|
|
|
|
. for __tmp__ in ${ONLY_FOR_PLATFORM}
|
|
|
|
. if ${MACHINE_PLATFORM:M${__tmp__}} != ""
|
2000-05-31 00:36:53 +02:00
|
|
|
__PLATFORM_OK?= yes
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # MACHINE_PLATFORM
|
|
|
|
. endfor # __tmp__
|
|
|
|
. else # !ONLY_FOR_PLATFORM
|
|
|
|
__PLATFORM_OK?= yes
|
|
|
|
. endif # ONLY_FOR_PLATFORM
|
|
|
|
. for __tmp__ in ${NOT_FOR_PLATFORM}
|
|
|
|
. if ${MACHINE_PLATFORM:M${__tmp__}} != ""
|
|
|
|
. undef __PLATFORM_OK
|
2000-08-19 17:32:15 +02:00
|
|
|
. endif # MACHINE_PLATFORM
|
|
|
|
. endfor # __tmp__
|
2001-07-19 00:43:32 +02:00
|
|
|
. if !defined(__PLATFORM_OK)
|
2000-08-19 17:32:15 +02:00
|
|
|
IGNORE+= "${PKGNAME} is not available for ${MACHINE_PLATFORM}"
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # !__PLATFORM_OK
|
1997-08-20 12:21:05 +02:00
|
|
|
|
2000-08-19 17:32:15 +02:00
|
|
|
#
|
|
|
|
# Now print some error messages that we know we should ignore the pkg
|
|
|
|
#
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(IGNORE)
|
2001-06-19 13:54:56 +02:00
|
|
|
fetch checksum extract patch configure all build install package \
|
2000-08-19 17:32:15 +02:00
|
|
|
install-depends check-depends:
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(IGNORE_SILENT)
|
2000-08-19 17:32:15 +02:00
|
|
|
@${DO_NADA}
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2000-08-19 17:32:15 +02:00
|
|
|
@for str in ${IGNORE} ; \
|
|
|
|
do \
|
|
|
|
${ECHO} "${_PKGSRC_IN}> $$str" ; \
|
|
|
|
done
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. if defined(IGNORE_FAIL)
|
2000-08-19 17:32:15 +02:00
|
|
|
${FALSE}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. endif # IGNORE
|
1998-01-25 15:46:10 +01:00
|
|
|
.endif # !NO_IGNORE
|
|
|
|
|
1998-10-20 18:01:03 +02:00
|
|
|
# Add these defs to the ones dumped into +BUILD_DEFS
|
2000-11-27 23:24:49 +01:00
|
|
|
BUILD_DEFS+= PKGPATH
|
1998-10-20 18:01:03 +02:00
|
|
|
BUILD_DEFS+= OPSYS OS_VERSION MACHINE_ARCH MACHINE_GNU_ARCH
|
2000-07-23 20:42:48 +02:00
|
|
|
BUILD_DEFS+= CPPFLAGS CFLAGS LDFLAGS
|
1998-10-20 18:01:03 +02:00
|
|
|
BUILD_DEFS+= CONFIGURE_ENV CONFIGURE_ARGS
|
2000-07-23 20:42:48 +02:00
|
|
|
BUILD_DEFS+= OBJECT_FMT LICENSE RESTRICTED
|
2000-08-19 00:43:19 +02:00
|
|
|
BUILD_DEFS+= NO_SRC_ON_FTP NO_SRC_ON_CDROM
|
|
|
|
BUILD_DEFS+= NO_BIN_ON_FTP NO_BIN_ON_CDROM
|
1998-10-20 18:01:03 +02:00
|
|
|
|
2001-07-07 19:10:36 +02:00
|
|
|
.if defined(OSVERSION_SPECIFIC)
|
|
|
|
BUILD_DEFS+= OSVERSION_SPECIFIC
|
|
|
|
.endif # OSVERSION_SPECIFIC
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
.if !target(all)
|
|
|
|
all: build
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if !defined(DEPENDS_TARGET)
|
2001-07-19 00:43:32 +02:00
|
|
|
. if make(package)
|
2000-04-24 05:40:50 +02:00
|
|
|
DEPENDS_TARGET= package
|
2001-07-19 00:43:32 +02:00
|
|
|
. elif make(update)
|
2000-10-22 10:22:24 +02:00
|
|
|
DEPENDS_TARGET= update
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2000-07-20 00:57:31 +02:00
|
|
|
DEPENDS_TARGET= reinstall
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1997-09-28 02:44:15 +02:00
|
|
|
.endif
|
1997-08-20 12:21:05 +02:00
|
|
|
|
2000-10-22 10:22:24 +02:00
|
|
|
.if !defined(UPDATE_TARGET)
|
2001-07-19 00:43:32 +02:00
|
|
|
. if ${DEPENDS_TARGET} == "update"
|
|
|
|
. if make(package)
|
2000-10-22 10:22:24 +02:00
|
|
|
UPDATE_TARGET= package
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2000-10-22 10:22:24 +02:00
|
|
|
UPDATE_TARGET= install
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. else
|
2000-10-22 10:22:24 +02:00
|
|
|
UPDATE_TARGET= ${DEPENDS_TARGET}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
2000-10-22 10:22:24 +02:00
|
|
|
.endif
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
################################################################
|
|
|
|
# The following are used to create easy dummy targets for
|
|
|
|
# disabling some bit of default target behavior you don't want.
|
|
|
|
# They still check to see if the target exists, and if so don't
|
|
|
|
# do anything, since you might want to set this globally for a
|
1999-08-10 12:48:23 +02:00
|
|
|
# group of packages in a Makefile.inc, but still be able to
|
1997-08-20 12:21:05 +02:00
|
|
|
# override from an individual Makefile.
|
|
|
|
################################################################
|
|
|
|
|
|
|
|
# Disable checksum
|
1998-06-02 17:47:06 +02:00
|
|
|
.if (defined(NO_CHECKSUM) && !target(checksum)) || exists(${EXTRACT_COOKIE})
|
1997-08-20 12:21:05 +02:00
|
|
|
checksum: fetch
|
|
|
|
@${DO_NADA}
|
|
|
|
.endif
|
|
|
|
|
|
|
|
# Disable patch
|
|
|
|
.if defined(NO_PATCH) && !target(patch)
|
|
|
|
patch: extract
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_FLAGS} ${PATCH_COOKIE}
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# Disable configure
|
|
|
|
.if defined(NO_CONFIGURE) && !target(configure)
|
|
|
|
configure: patch
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_FLAGS} ${CONFIGURE_COOKIE}
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# Disable build
|
|
|
|
.if defined(NO_BUILD) && !target(build)
|
|
|
|
build: configure
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_FLAGS} ${BUILD_COOKIE}
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# Disable install
|
|
|
|
.if defined(NO_INSTALL) && !target(install)
|
|
|
|
install: build
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_FLAGS} ${INSTALL_COOKIE}
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# Disable package
|
|
|
|
.if defined(NO_PACKAGE) && !target(package)
|
|
|
|
package:
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(IGNORE_SILENT)
|
1997-08-20 12:21:05 +02:00
|
|
|
@${DO_NADA}
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2000-03-13 15:19:15 +01:00
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> ${PKGNAME} may not be packaged: ${NO_PACKAGE}."
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
# More standard targets start here.
|
|
|
|
#
|
|
|
|
# These are the body of the build/install framework. If you are
|
|
|
|
# not happy with the default actions, and you can't solve it by
|
|
|
|
# adding pre-* or post-* targets/scripts, override these.
|
|
|
|
################################################################
|
|
|
|
|
|
|
|
# Fetch
|
1998-09-05 21:45:25 +02:00
|
|
|
_FETCH_FILE= \
|
1999-07-28 12:58:30 +02:00
|
|
|
if [ ! -f $$file -a ! -f $$bfile -a ! -h $$bfile ]; then \
|
2000-03-10 17:07:37 +01:00
|
|
|
${ECHO_MSG} "=> $$bfile doesn't seem to exist on this system."; \
|
2000-05-31 03:07:14 +02:00
|
|
|
if [ ! -w ${_DISTDIR}/. ]; then \
|
|
|
|
${ECHO_MSG} "=> Can't download to ${_DISTDIR} (permission denied?)."; \
|
|
|
|
exit 1; \
|
|
|
|
fi; \
|
1998-10-12 21:40:33 +02:00
|
|
|
for site in $$sites; do \
|
2000-03-10 17:07:37 +01:00
|
|
|
${ECHO_MSG} "=> Attempting to fetch $$bfile from $${site}."; \
|
1998-10-12 21:40:33 +02:00
|
|
|
if ${FETCH_CMD} ${FETCH_BEFORE_ARGS} $${site}$${bfile} ${FETCH_AFTER_ARGS}; then \
|
2001-06-09 14:15:59 +02:00
|
|
|
if [ -n "${FAILOVER_FETCH}" -a -f ${DISTINFO_FILE} -a -f ${_DISTDIR}/$$bfile ]; then \
|
|
|
|
alg=`${AWK} 'NF == 4 && $$2 == "('$$file')" && $$3 == "=" {print $$1;}' ${DISTINFO_FILE}`; \
|
2001-03-26 19:08:19 +02:00
|
|
|
if [ -z "$$alg" ]; then \
|
|
|
|
alg=${DIGEST_ALGORITHM};\
|
|
|
|
fi; \
|
2001-03-06 15:50:45 +01:00
|
|
|
CKSUM=`${DIGEST} $$alg < ${_DISTDIR}/$$bfile`; \
|
2001-06-09 14:15:59 +02:00
|
|
|
CKSUM2=`${AWK} '$$1 == "'$$alg'" && $$2 == "('$$file')" {print $$4;}' <${DISTINFO_FILE}`; \
|
1998-10-12 21:40:33 +02:00
|
|
|
if [ "$$CKSUM" = "$$CKSUM2" -o "$$CKSUM2" = "IGNORE" ]; then \
|
1998-09-01 15:15:29 +02:00
|
|
|
continue 2; \
|
1998-10-12 21:40:33 +02:00
|
|
|
else \
|
2000-03-10 17:07:37 +01:00
|
|
|
${ECHO_MSG} "=> Checksum failure - trying next site."; \
|
1998-09-01 15:15:29 +02:00
|
|
|
fi; \
|
1999-07-21 14:16:27 +02:00
|
|
|
elif [ ! -f ${_DISTDIR}/$$bfile ]; then \
|
2000-03-10 17:07:37 +01:00
|
|
|
${ECHO_MSG} "=> FTP didn't fetch expected file, trying next site." ; \
|
1998-10-12 21:40:33 +02:00
|
|
|
else \
|
|
|
|
continue 2; \
|
|
|
|
fi; \
|
|
|
|
fi \
|
|
|
|
done; \
|
2000-05-19 23:07:00 +02:00
|
|
|
${ECHO_MSG} "=> Couldn't fetch $$bfile - please try to retrieve this";\
|
2000-03-10 17:07:37 +01:00
|
|
|
${ECHO_MSG} "=> file manually into ${_DISTDIR} and try again."; \
|
1998-10-12 21:40:33 +02:00
|
|
|
exit 1; \
|
|
|
|
fi
|
1998-09-05 21:45:25 +02:00
|
|
|
|
1999-07-27 17:01:30 +02:00
|
|
|
_CHECK_DIST_PATH= \
|
|
|
|
if [ "X${DIST_PATH}" != "X" ]; then \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
for d in "" ${DIST_PATH:S/:/ /g}; do \
|
1999-07-27 17:01:30 +02:00
|
|
|
if [ "X$$d" = "X" -o "X$$d" = "X${DISTDIR}" ]; then continue; fi; \
|
|
|
|
if [ -f $$d/${DIST_SUBDIR}/$$bfile ]; then \
|
|
|
|
${ECHO} "Using $$d/${DIST_SUBDIR}/$$bfile"; \
|
|
|
|
${RM} -f $$bfile; \
|
|
|
|
${LN} -s $$d/${DIST_SUBDIR}/$$bfile $$bfile; \
|
|
|
|
break; \
|
|
|
|
fi; \
|
|
|
|
done; \
|
|
|
|
fi
|
|
|
|
|
1999-07-13 20:09:19 +02:00
|
|
|
#
|
|
|
|
# Sort the master site list according to the patterns in MASTER_SORT
|
|
|
|
#
|
|
|
|
MASTER_SORT?=
|
|
|
|
MASTER_SORT_REGEX?=
|
|
|
|
MASTER_SORT_REGEX+= ${MASTER_SORT:S/./\\./g:C/.*/:\/\/[^\/]*&\//}
|
|
|
|
|
|
|
|
MASTER_SORT_AWK= BEGIN { RS = " "; ORS = " "; IGNORECASE = 1 ; gl = "${MASTER_SORT_REGEX}"; }
|
|
|
|
.for srt in ${MASTER_SORT_REGEX}
|
|
|
|
MASTER_SORT_AWK+= /${srt:C/\//\\\//g}/ { good["${srt}"] = good["${srt}"] " " $$0 ; next; }
|
|
|
|
.endfor
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
MASTER_SORT_AWK+= { rest = rest " " $$0; } END { n=split(gl, gla); for(i=1;i<=n;i++) { print good[gla[i]]; } print rest; }
|
2001-06-12 14:49:55 +02:00
|
|
|
SORTED_MASTER_SITES_CMD= ${ECHO} '${MASTER_SITES}' | ${AWK} '${MASTER_SORT_AWK}'
|
2001-10-25 20:12:53 +02:00
|
|
|
SORTED_PATCH_SITES_CMD= ${ECHO} '${PATCH_SITES}' | ${AWK} '${MASTER_SORT_AWK}'
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
|
1999-07-13 20:09:19 +02:00
|
|
|
|
1998-09-05 21:45:25 +02:00
|
|
|
.if !target(do-fetch)
|
|
|
|
do-fetch:
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${_DISTDIR}
|
2000-06-03 01:30:52 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${_DISTDIR}; \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
sites=`${SORTED_MASTER_SITES_CMD}`; \
|
1999-03-08 18:26:54 +01:00
|
|
|
for file in "" ${_DISTFILES}; do \
|
|
|
|
if [ "X$$file" = X"" ]; then continue; fi; \
|
1999-07-27 17:01:30 +02:00
|
|
|
bfile=`${BASENAME} $$file`; \
|
|
|
|
${_CHECK_DIST_PATH}; \
|
|
|
|
${_FETCH_FILE} \
|
2000-06-03 01:30:52 +02:00
|
|
|
done
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(_PATCHFILES)
|
2000-06-03 01:30:52 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${_DISTDIR}; \
|
2001-10-25 20:12:53 +02:00
|
|
|
sites=`${SORTED_PATCH_SITES_CMD}`; \
|
1999-03-08 18:26:54 +01:00
|
|
|
for file in "" ${_PATCHFILES}; do \
|
|
|
|
if [ "X$$file" = X"" ]; then continue; fi; \
|
1999-07-27 17:01:30 +02:00
|
|
|
bfile=`${BASENAME} $$file`; \
|
|
|
|
${_CHECK_DIST_PATH}; \
|
1999-03-08 18:26:54 +01:00
|
|
|
${_FETCH_FILE} \
|
2000-06-03 01:30:52 +02:00
|
|
|
done
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
2001-01-22 05:00:54 +01:00
|
|
|
# show both build and run depends directories (non-recursively)
|
|
|
|
.if !target(show-depends-dirs)
|
|
|
|
show-depends-dirs:
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
dlist="";\
|
2001-01-22 23:43:10 +01:00
|
|
|
thisdir=`pwd`;\
|
2001-09-14 20:54:43 +02:00
|
|
|
for reldir in "" ${DEPENDS:C/^[^:]*://:C/:.*$//} ${BUILD_DEPENDS:C/^[^:]*://:C/:.*$//} ;\
|
2001-01-22 05:00:54 +01:00
|
|
|
do \
|
2001-09-14 20:54:43 +02:00
|
|
|
if [ "X$$reldir" = "X" ]; then continue; fi ;\
|
2001-01-22 23:43:10 +01:00
|
|
|
cd $$thisdir/$$reldir ;\
|
2001-01-22 05:00:54 +01:00
|
|
|
PWD=`pwd` ;\
|
|
|
|
d=`dirname $$PWD` ;\
|
|
|
|
absdir=`basename $$d`/`basename $$PWD` ;\
|
|
|
|
dlist="$$dlist $$absdir";\
|
|
|
|
done ;\
|
2001-01-22 23:43:10 +01:00
|
|
|
cd $$thisdir ;\
|
2001-01-22 05:00:54 +01:00
|
|
|
${ECHO} "$$dlist"
|
|
|
|
.endif
|
|
|
|
|
1999-06-28 13:42:28 +02:00
|
|
|
.if !target(show-distfiles)
|
|
|
|
show-distfiles:
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(IGNORE)
|
1999-06-28 13:42:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${DO_NADA}
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
1999-06-28 13:42:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
for file in "" ${_CKSUMFILES}; do \
|
|
|
|
if [ "X$$file" = "X" ]; then continue; fi; \
|
|
|
|
${ECHO} $$file; \
|
|
|
|
done
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1999-06-28 13:42:28 +02:00
|
|
|
.endif
|
|
|
|
|
1999-07-02 14:54:28 +02:00
|
|
|
.if !target(show-downlevel)
|
|
|
|
show-downlevel:
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(IGNORE)
|
1999-07-02 14:54:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${DO_NADA}
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
1999-07-02 14:54:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2001-01-25 22:20:05 +01:00
|
|
|
found="`${PKG_INFO} -e \"${PKGBASE}\" || ${TRUE}`"; \
|
1999-07-02 14:54:28 +02:00
|
|
|
if [ "X$$found" != "X" -a "X$$found" != "X${PKGNAME}" ]; then \
|
2000-06-03 20:51:34 +02:00
|
|
|
${ECHO} "${PKGBASE} package: $$found installed, pkgsrc version ${PKGNAME}"; \
|
2001-09-10 22:03:17 +02:00
|
|
|
if [ "X$$STOP_DOWNLEVEL_AFTER_FIRST" != "X" ]; then \
|
|
|
|
${ECHO} "stoping after first downlevel pkg found"; \
|
|
|
|
exit 1; \
|
|
|
|
fi; \
|
1999-07-02 14:54:28 +02:00
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1999-07-02 14:54:28 +02:00
|
|
|
.endif
|
2000-05-11 13:23:20 +02:00
|
|
|
|
2001-10-01 00:10:33 +02:00
|
|
|
.if !target(show-installed-depends)
|
|
|
|
show-installed-depends:
|
2001-10-04 23:48:12 +02:00
|
|
|
. if defined(DEPENDS)
|
2001-10-05 00:01:54 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
for i in ${DEPENDS:C/:.*$//:Q:S/\ / /g} ; do \
|
2001-10-04 23:48:12 +02:00
|
|
|
echo "$$i =>" `${PKG_INFO} -e $$i` ; \
|
2001-10-01 00:10:33 +02:00
|
|
|
done
|
2001-10-04 23:48:12 +02:00
|
|
|
. endif
|
2001-10-01 00:10:33 +02:00
|
|
|
.endif
|
|
|
|
|
2000-07-15 22:39:13 +02:00
|
|
|
.if defined(EVAL_PREFIX)
|
2001-07-19 00:43:32 +02:00
|
|
|
. for def in ${EVAL_PREFIX}
|
|
|
|
. if !defined(${def:C/=.*//}_DEFAULT)
|
2000-09-05 21:13:40 +02:00
|
|
|
${def:C/=.*//}_DEFAULT= ${X11PREFIX}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. if !defined(${def:C/=.*//})
|
2001-07-25 09:36:40 +02:00
|
|
|
_depend_${def:C/=.*//} != ${PKG_INFO} -e ${def:C/.*=//} 2>/dev/null; ${ECHO}
|
|
|
|
. if (${_depend_${def:C/=.*//}} == "")
|
|
|
|
${def:C/=.*//}=${${def:C/=.*//}_DEFAULT}
|
|
|
|
. else
|
|
|
|
_dir_${def:C/=.*//} != (${PKG_INFO} -qp ${def:C/.*=//} 2>/dev/null) | ${AWK} '{ print $$2; exit }'
|
2000-07-25 17:15:47 +02:00
|
|
|
${def:C/=.*//}=${_dir_${def:C/=.*//}}
|
|
|
|
MAKEFLAGS+= ${def:C/=.*//}=${_dir_${def:C/=.*//}}
|
2001-07-25 09:36:40 +02:00
|
|
|
. endif
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. endfor
|
2000-07-15 22:39:13 +02:00
|
|
|
.endif
|
2000-07-11 16:53:35 +02:00
|
|
|
|
2000-05-11 13:23:20 +02:00
|
|
|
.if !target(show-pkgsrc-dir)
|
|
|
|
show-pkgsrc-dir:
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(IGNORE)
|
2000-05-11 13:23:20 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${DO_NADA}
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2000-05-11 13:23:20 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2000-06-03 20:51:34 +02:00
|
|
|
found="`${PKG_INFO} -e \"${PKGWILDCARD}\" || ${TRUE}`"; \
|
2000-05-11 13:23:20 +02:00
|
|
|
if [ "X$$found" != "X" ]; then \
|
2000-06-03 20:51:34 +02:00
|
|
|
${ECHO} ${PKGPATH}; \
|
2000-05-11 13:23:20 +02:00
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
2000-05-11 13:23:20 +02:00
|
|
|
.endif
|
1999-07-02 14:54:28 +02:00
|
|
|
|
1998-01-22 11:20:48 +01:00
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
# Extract
|
|
|
|
|
1999-04-01 16:07:52 +02:00
|
|
|
DOWNLOADED_DISTFILE= ${_DISTDIR}/$$file
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
.if !target(do-extract)
|
|
|
|
do-extract:
|
2001-07-19 00:43:32 +02:00
|
|
|
. ifndef KEEP_WRKDIR
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${RM} -rf ${WRKDIR}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${WRKDIR}
|
2001-07-19 00:43:32 +02:00
|
|
|
. ifdef WRKOBJDIR
|
1999-03-09 16:31:59 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
1999-08-04 15:49:02 +02:00
|
|
|
${RM} -f ${WRKDIR_BASENAME} || ${TRUE}; \
|
1999-03-09 16:31:59 +01:00
|
|
|
if ${LN} -s ${WRKDIR} ${WRKDIR_BASENAME} 2>/dev/null; then \
|
1998-09-16 10:46:58 +02:00
|
|
|
${ECHO} "${WRKDIR_BASENAME} -> ${WRKDIR}"; \
|
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # WRKOBJDIR
|
1999-03-09 17:39:56 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
for file in "" ${EXTRACT_ONLY}; do \
|
|
|
|
if [ "X$$file" = X"" ]; then continue; fi; \
|
2001-04-03 14:06:31 +02:00
|
|
|
{ cd ${WRKDIR} && ${EXTRACT_CMD}; }; \
|
1997-08-20 12:21:05 +02:00
|
|
|
done
|
|
|
|
.endif
|
|
|
|
|
|
|
|
# Patch
|
|
|
|
|
|
|
|
.if !target(do-patch)
|
2001-03-06 15:50:45 +01:00
|
|
|
do-patch: uptodate-digest
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(PATCHFILES)
|
2000-03-13 15:19:15 +01:00
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> Applying distribution patches for ${PKGNAME}"
|
2000-06-03 01:30:52 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${_DISTDIR}; \
|
1997-08-20 12:21:05 +02:00
|
|
|
for i in ${PATCHFILES}; do \
|
|
|
|
if [ ${PATCH_DEBUG_TMP} = yes ]; then \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Applying distribution patch $$i" ; \
|
1997-08-20 12:21:05 +02:00
|
|
|
fi; \
|
|
|
|
case $$i in \
|
|
|
|
*.Z|*.gz) \
|
1999-01-09 21:52:30 +01:00
|
|
|
${GZCAT} $$i | ${PATCH} ${PATCH_DIST_ARGS} \
|
2001-04-03 14:06:31 +02:00
|
|
|
|| { ${ECHO} Patch $$i failed ; exit 1; } ; \
|
2000-05-17 05:32:43 +02:00
|
|
|
;; \
|
|
|
|
*.bz2) \
|
|
|
|
${BZCAT} $$i | ${PATCH} ${PATCH_DIST_ARGS} \
|
2001-04-03 14:06:31 +02:00
|
|
|
|| { ${ECHO} Patch $$i failed ; exit 1; } ; \
|
1997-08-20 12:21:05 +02:00
|
|
|
;; \
|
|
|
|
*) \
|
1999-01-09 21:52:30 +01:00
|
|
|
${PATCH} ${PATCH_DIST_ARGS} < $$i \
|
2001-04-03 14:06:31 +02:00
|
|
|
|| { ${ECHO} Patch $$i failed ; exit 1; } ; \
|
1997-08-20 12:21:05 +02:00
|
|
|
;; \
|
|
|
|
esac; \
|
2000-06-03 01:30:52 +02:00
|
|
|
done
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1999-07-09 15:14:21 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}if [ -d ${PATCHDIR} ]; then \
|
1998-09-23 15:09:32 +02:00
|
|
|
if [ "`${ECHO} ${PATCHDIR}/patch-*`" = "${PATCHDIR}/patch-*" ]; then \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Ignoring empty patch directory"; \
|
1999-07-09 15:14:21 +02:00
|
|
|
if [ -d ${PATCHDIR}/CVS ]; then \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Perhaps you forgot the -P flag to cvs co or update?"; \
|
1999-07-09 15:14:21 +02:00
|
|
|
fi; \
|
|
|
|
else \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Applying ${OPSYS} patches for ${PKGNAME}" ; \
|
1999-07-26 18:46:43 +02:00
|
|
|
fail=""; \
|
2001-08-24 02:54:46 +02:00
|
|
|
for i in ${PATCHDIR}/patch-* ${LOCALPATCHES}/${PKGPATH}/* ; do \
|
|
|
|
if [ "$$i" = "${LOCALPATCHES}/${PKGPATH}/*" ]; then \
|
|
|
|
continue ; \
|
|
|
|
fi ; \
|
|
|
|
if [ ! -f "$$i" ]; then \
|
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> $$i is not a valid patch file - skipping" ; \
|
|
|
|
continue ; \
|
|
|
|
fi ; \
|
1999-07-09 15:14:21 +02:00
|
|
|
case $$i in \
|
|
|
|
*.orig|*.rej|*~) \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Ignoring patchfile $$i" ; \
|
1999-07-27 17:01:30 +02:00
|
|
|
continue; \
|
|
|
|
;; \
|
|
|
|
${PATCHDIR}/patch-local-*) \
|
1999-07-09 15:14:21 +02:00
|
|
|
;; \
|
2001-08-24 02:54:46 +02:00
|
|
|
${LOCALPATCHES}/${PKGPATH}/*) \
|
|
|
|
;; \
|
1999-07-09 15:14:21 +02:00
|
|
|
*) \
|
2001-06-09 14:15:59 +02:00
|
|
|
if [ -f ${DISTINFO_FILE} ]; then \
|
1999-07-09 15:14:21 +02:00
|
|
|
filename=`expr $$i : '.*/\(.*\)'`; \
|
2001-06-09 14:15:59 +02:00
|
|
|
algsum=`${AWK} 'NF == 4 && $$2 == "('$$filename')" && $$3 == "=" {print $$1 " " $$4}' ${DISTINFO_FILE} || ${TRUE}`; \
|
2001-03-07 15:57:49 +01:00
|
|
|
if [ "X$$algsum" != "X" ]; then \
|
|
|
|
alg=`${ECHO} $$algsum | ${AWK} '{ print $$1 }'`; \
|
|
|
|
recorded=`${ECHO} $$algsum | ${AWK} '{ print $$2 }'`; \
|
|
|
|
calcsum=`${SED} -e '/\$$NetBSD.*/d' $$i | ${DIGEST} $$alg`; \
|
|
|
|
if [ ${PATCH_DEBUG_TMP} = yes ]; then \
|
|
|
|
${ECHO_MSG} "=> Verifying $$filename (using digest algorithm $$alg)" ; \
|
|
|
|
fi; \
|
2001-03-06 15:50:45 +01:00
|
|
|
fi; \
|
2001-03-07 15:57:49 +01:00
|
|
|
if [ "X$$algsum" = "X" -o "X$$recorded" = "X" ]; then \
|
1999-07-26 18:46:43 +02:00
|
|
|
${ECHO_MSG} "**************************************"; \
|
|
|
|
${ECHO_MSG} "Ignoring unknown patch file: $$i"; \
|
|
|
|
${ECHO_MSG} "**************************************"; \
|
|
|
|
continue; \
|
1999-07-09 15:14:21 +02:00
|
|
|
fi; \
|
|
|
|
if [ "X$$calcsum" != "X$$recorded" ]; then \
|
1999-07-26 18:46:43 +02:00
|
|
|
${ECHO_MSG} "**************************************"; \
|
|
|
|
${ECHO_MSG} "Patch file $$i has been modified"; \
|
|
|
|
${ECHO_MSG} "**************************************"; \
|
|
|
|
fail="$$fail $$filename"; \
|
1999-07-27 17:01:30 +02:00
|
|
|
continue; \
|
1999-07-09 15:14:21 +02:00
|
|
|
fi; \
|
|
|
|
fi; \
|
|
|
|
;; \
|
|
|
|
esac; \
|
1999-07-27 17:01:30 +02:00
|
|
|
if [ ${PATCH_DEBUG_TMP} = yes ]; then \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Applying ${OPSYS} patch $$i" ; \
|
1999-07-27 17:01:30 +02:00
|
|
|
fi; \
|
1999-11-12 11:34:47 +01:00
|
|
|
fuzz=""; \
|
|
|
|
${PATCH} -v > /dev/null 2>&1 && fuzz="${PATCH_FUZZ_FACTOR}"; \
|
|
|
|
${PATCH} $$fuzz ${PATCH_ARGS} < $$i || \
|
2001-04-03 14:06:31 +02:00
|
|
|
{ ${ECHO} Patch $$i failed ; exit 1; } ; \
|
1999-07-09 15:14:21 +02:00
|
|
|
done; \
|
1999-07-26 18:46:43 +02:00
|
|
|
if [ "X$$fail" != "X" ]; then \
|
|
|
|
${ECHO_MSG} "Patching failed due to modified patch file(s): $$fail"; \
|
|
|
|
exit 1; \
|
|
|
|
fi; \
|
1999-07-09 15:14:21 +02:00
|
|
|
fi; \
|
1997-08-20 12:21:05 +02:00
|
|
|
fi
|
|
|
|
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(REPLACE_PERL)
|
|
|
|
. for f in ${REPLACE_PERL}
|
2000-07-28 12:33:56 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${WRKSRC}; if [ -f ${f} ]; then \
|
2001-10-31 19:05:48 +01:00
|
|
|
${SED} "s,#!.*/bin/perl,#!${PERL5}," \
|
2001-06-27 13:40:25 +02:00
|
|
|
${f} > ${f}.new; \
|
2000-07-28 12:33:56 +02:00
|
|
|
if [ -x ${f} ]; then \
|
2000-11-02 04:01:40 +01:00
|
|
|
${CHMOD} a+x ${f}.new; \
|
|
|
|
fi; \
|
2001-07-26 10:39:35 +02:00
|
|
|
${MV} -f ${f}.new ${f}; \
|
2000-07-28 12:33:56 +02:00
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. endfor
|
|
|
|
. endif
|
2001-06-27 13:40:25 +02:00
|
|
|
.endif
|
2000-07-28 12:33:56 +02:00
|
|
|
|
2001-06-27 13:40:25 +02:00
|
|
|
# Configure
|
|
|
|
|
2001-10-24 21:42:28 +02:00
|
|
|
_CONFIGURE_PREREQ+= replace-ncurses
|
|
|
|
replace-ncurses:
|
|
|
|
.if defined(REPLACE_NCURSES) && (!defined(NEED_NCURSES) || ${NEED_NCURSES} == "NO")
|
|
|
|
. for f in ${REPLACE_NCURSES}
|
2001-06-27 13:24:15 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${WRKSRC}; if [ -f ${f} ]; then \
|
2001-06-27 13:40:25 +02:00
|
|
|
${SED} -e "s/ncurses/curses/g" ${f} > ${f}.new; \
|
2001-06-27 13:24:15 +02:00
|
|
|
if [ -x ${f} ]; then \
|
|
|
|
${CHMOD} a+x ${f}.new; \
|
|
|
|
fi; \
|
|
|
|
${MV} ${f}.new ${f}; \
|
|
|
|
fi
|
2001-10-24 21:42:28 +02:00
|
|
|
. endfor
|
|
|
|
.else
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${TRUE}
|
|
|
|
.endif
|
2001-06-27 13:24:15 +02:00
|
|
|
|
2001-10-24 21:42:28 +02:00
|
|
|
_CONFIGURE_PREREQ+= do-libtool
|
|
|
|
do-libtool:
|
|
|
|
.if defined(USE_LIBTOOL) && defined(LTCONFIG_OVERRIDE)
|
|
|
|
. for ltconfig in ${LTCONFIG_OVERRIDE}
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
if [ -f ${ltconfig} ]; then \
|
|
|
|
${RM} -f ${ltconfig}; \
|
|
|
|
${ECHO} "${RM} -f libtool; ${LN} -s ${LIBTOOL} libtool" \
|
|
|
|
> ${ltconfig}; \
|
|
|
|
${CHMOD} +x ${ltconfig}; \
|
1999-12-07 09:55:58 +01:00
|
|
|
fi
|
2001-10-24 21:42:28 +02:00
|
|
|
. endfor
|
|
|
|
.else
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${TRUE}
|
|
|
|
.endif
|
|
|
|
|
2001-10-26 19:03:04 +02:00
|
|
|
.if defined(AUTOMAKE_OVERRIDE) && (${AUTOMAKE_OVERRIDE} == "YES")
|
|
|
|
#
|
|
|
|
# Prevent invocation of GNU "auto*" during the build process driven by the
|
|
|
|
# generated Makefiles by touching various auto{conf,make} source files to
|
|
|
|
# make them up-to-date.
|
|
|
|
#
|
|
|
|
AUTOMAKE_PATTERNS+= *.m4
|
|
|
|
AUTOMAKE_PATTERNS+= *.in
|
|
|
|
AUTOMAKE_PATTERNS+= configure
|
|
|
|
_AUTOMAKE_PATTERNS_FIND= \
|
2001-10-29 20:21:18 +01:00
|
|
|
\( ${AUTOMAKE_PATTERNS:S/$/!/:S/^/-o -name !/:S/!/"/g:S/-o//1} \)
|
2001-10-26 19:03:04 +02:00
|
|
|
|
|
|
|
_CONFIGURE_PREREQ+= suppress-automake
|
|
|
|
suppress-automake:
|
|
|
|
. if defined(HAS_CONFIGURE)
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
cd ${WRKSRC}; \
|
2001-10-29 20:21:18 +01:00
|
|
|
${FIND} . ${_AUTOMAKE_PATTERNS_FIND} -print | \
|
|
|
|
${XARGS} ${TOUCH} ${TOUCH_ARGS}
|
2001-10-26 19:03:04 +02:00
|
|
|
. else
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${TRUE}
|
|
|
|
. endif
|
|
|
|
.endif # AUTOMAKE_OVERRIDE
|
|
|
|
|
2001-10-24 21:42:28 +02:00
|
|
|
.if !target(do-configure)
|
|
|
|
do-configure: ${_CONFIGURE_PREREQ}
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(HAS_CONFIGURE)
|
2000-11-01 10:06:22 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${WRKSRC} && ${SETENV} \
|
2001-06-11 08:30:59 +02:00
|
|
|
CC="${CC}" CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}" \
|
2000-11-01 10:06:22 +01:00
|
|
|
CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" \
|
1999-03-31 12:59:44 +02:00
|
|
|
INSTALL="`${TYPE} ${INSTALL} | ${AWK} '{ print $$NF }'` -c -o ${BINOWN} -g ${BINGRP}" \
|
2000-05-02 20:44:37 +02:00
|
|
|
ac_given_INSTALL="`${TYPE} ${INSTALL} | ${AWK} '{ print $$NF }'` -c -o ${BINOWN} -g ${BINGRP}" \
|
1999-05-20 21:50:09 +02:00
|
|
|
INSTALL_DATA="${INSTALL_DATA}" \
|
1997-08-20 12:21:05 +02:00
|
|
|
INSTALL_PROGRAM="${INSTALL_PROGRAM}" \
|
1999-05-20 21:21:02 +02:00
|
|
|
INSTALL_SCRIPT="${INSTALL_SCRIPT}" \
|
2000-06-03 01:30:52 +02:00
|
|
|
${CONFIGURE_ENV} ${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. if defined(USE_IMAKE)
|
2000-06-03 01:30:52 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${WRKSRC} && ${SETENV} ${SCRIPTS_ENV} XPROJECTROOT=${X11BASE} ${XMKMF}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. if defined(USE_LIBTOOL) && defined(LIBTOOL_OVERRIDE)
|
|
|
|
. for libtool in ${LIBTOOL_OVERRIDE}
|
2001-06-30 05:36:48 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}\
|
|
|
|
if [ -f ${libtool} ]; then \
|
|
|
|
${RM} -f ${libtool}; \
|
|
|
|
${LN} -sf ${LIBTOOL} ${libtool}; \
|
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. endfor
|
|
|
|
. endif
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# Build
|
|
|
|
|
|
|
|
.if !target(do-build)
|
|
|
|
do-build:
|
2000-06-03 01:30:52 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} -f ${MAKEFILE} ${ALL_TARGET}
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# Install
|
|
|
|
|
|
|
|
.if !target(do-install)
|
|
|
|
do-install:
|
2000-06-03 01:30:52 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} -f ${MAKEFILE} ${INSTALL_TARGET}
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# Package
|
|
|
|
|
2001-09-12 12:38:12 +02:00
|
|
|
.if !target(real-su-package)
|
|
|
|
real-su-package: ${PLIST} ${DESCR}
|
2000-11-29 14:18:22 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}\
|
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Building binary package for ${PKGNAME}"; \
|
|
|
|
if [ ! -d ${PKGREPOSITORY} ]; then \
|
|
|
|
${MKDIR} ${PKGREPOSITORY}; \
|
|
|
|
if [ $$? -ne 0 ]; then \
|
|
|
|
${ECHO_MSG} "=> Can't create directory ${PKGREPOSITORY}."; \
|
|
|
|
exit 1; \
|
|
|
|
fi; \
|
|
|
|
fi; \
|
2001-03-07 01:26:26 +01:00
|
|
|
if ${PKG_CREATE} ${PKG_ARGS_BINPKG} ${PKGFILE}; then \
|
2000-11-29 14:18:22 +01:00
|
|
|
${MAKE} ${MAKEFLAGS} package-links; \
|
|
|
|
else \
|
|
|
|
${MAKE} ${MAKEFLAGS} delete-package; \
|
|
|
|
exit 1; \
|
1997-08-20 12:21:05 +02:00
|
|
|
fi
|
2001-09-25 22:26:37 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_FLAGS} ${PACKAGE_COOKIE}
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(NO_BIN_ON_CDROM)
|
2000-07-20 14:33:43 +02:00
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> Warning: ${PKGNAME} may not be put on a CD-ROM:"
|
2000-08-19 17:32:15 +02:00
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> " ${NO_BIN_ON_CDROM:Q}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. if defined(NO_BIN_ON_FTP)
|
2000-07-20 14:33:43 +02:00
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> Warning: ${PKGNAME} may not be made available through FTP:"
|
2000-08-19 17:32:15 +02:00
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> " ${NO_BIN_ON_FTP:Q}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
2001-09-12 12:38:12 +02:00
|
|
|
# Some support rules for real-su-package
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
.if !target(package-links)
|
|
|
|
package-links:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${MAKE} ${MAKEFLAGS} delete-package-links
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}for cat in ${CATEGORIES}; do \
|
|
|
|
if [ ! -d ${PACKAGES}/$$cat ]; then \
|
1999-03-09 12:14:52 +01:00
|
|
|
${MKDIR} ${PACKAGES}/$$cat; \
|
|
|
|
if [ $$? -ne 0 ]; then \
|
2000-03-10 17:07:37 +01:00
|
|
|
${ECHO_MSG} "=> Can't create directory ${PACKAGES}/$$cat."; \
|
1999-03-08 18:26:54 +01:00
|
|
|
exit 1; \
|
|
|
|
fi; \
|
|
|
|
fi; \
|
2000-06-03 22:58:46 +02:00
|
|
|
${RM} -f ${PACKAGES}/$$cat/${PKGNAME}${PKG_SUFX}; \
|
1999-03-08 18:26:54 +01:00
|
|
|
${LN} -s ../${PKGREPOSITORYSUBDIR}/${PKGNAME}${PKG_SUFX} ${PACKAGES}/$$cat; \
|
1997-08-20 12:21:05 +02:00
|
|
|
done;
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if !target(delete-package-links)
|
|
|
|
delete-package-links:
|
2000-05-30 23:35:32 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}\
|
2001-05-18 12:29:10 +02:00
|
|
|
${FIND} ${PACKAGES} -type l -name ${PKGNAME}${PKG_SUFX} | ${XARGS} ${RM} -f
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
.if !target(delete-package)
|
|
|
|
delete-package:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${MAKE} ${MAKEFLAGS} delete-package-links
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${RM} -f ${PKGFILE}
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
2001-01-29 12:34:21 +01:00
|
|
|
real-su-install: ${MESSAGE}
|
1998-08-28 13:13:23 +02:00
|
|
|
.if !defined(NO_PKG_REGISTER) && !defined(FORCE_PKG_REGISTER)
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(CONFLICTS)
|
2000-06-03 20:51:34 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
${RM} -f ${WRKDIR}/.CONFLICTS
|
2001-07-19 00:43:32 +02:00
|
|
|
. for conflict in ${CONFLICTS}
|
2000-06-03 20:51:34 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
found="`${PKG_INFO} -e \"${conflict}\" || ${TRUE}`"; \
|
1998-08-25 18:26:09 +02:00
|
|
|
if [ X"$$found" != X"" ]; then \
|
|
|
|
${ECHO} "$$found" >> ${WRKDIR}/.CONFLICTS; \
|
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. endfor
|
2000-06-03 20:51:34 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
if [ -s ${WRKDIR}/.CONFLICTS ]; then \
|
2001-01-29 15:40:26 +01:00
|
|
|
found=`${SED} -e s'|${PKG_DBDIR}/||g' ${WRKDIR}/.CONFLICTS | tr '\012' ' '`; \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> ${PKGNAME} conflicts with installed package(s): $$found found."; \
|
|
|
|
${ECHO_MSG} "*** They install the same files into the same place."; \
|
|
|
|
${ECHO_MSG} "*** Please remove $$found first with pkg_delete(1)."; \
|
1998-08-25 18:26:09 +02:00
|
|
|
${RM} -f ${WRKDIR}/.CONFLICTS; \
|
|
|
|
exit 1; \
|
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # CONFLICTS
|
2000-06-03 20:51:34 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
found="`${PKG_INFO} -e \"${PKGWILDCARD}\" || ${TRUE}`"; \
|
1999-02-16 04:23:04 +01:00
|
|
|
if [ "$$found" != "" ]; then \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> $$found is already installed - perhaps an older version?"; \
|
|
|
|
${ECHO_MSG} "*** If so, you may wish to \`\`pkg_delete $$found'' and install"; \
|
|
|
|
${ECHO_MSG} "*** this package again by \`\`${MAKE} reinstall'' to upgrade it properly,"; \
|
|
|
|
${ECHO_MSG} "*** or use \`\`${MAKE} update'' to upgrade it and all of its dependencies."; \
|
|
|
|
${ECHO_MSG} "*** If you really wish to overwrite the old package of $$found"; \
|
|
|
|
${ECHO_MSG} "*** without deleting it first, set the variable \"FORCE_PKG_REGISTER\""; \
|
|
|
|
${ECHO_MSG} "*** in your environment or the \"${MAKE} install\" command line."; \
|
1999-03-08 18:26:54 +01:00
|
|
|
exit 1; \
|
1997-08-20 12:21:05 +02:00
|
|
|
fi
|
1999-03-31 11:04:18 +02:00
|
|
|
.endif # !NO_PKG_REGISTER && !NO_FORCE_REGISTER
|
2001-05-20 02:54:09 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}if [ `${SH} -c umask` -ne ${DEF_UMASK} ]; then \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Warning: your umask is \"`${SH} -c umask`"\".; \
|
|
|
|
${ECHO_MSG} "If this is not desired, set it to an appropriate value (${DEF_UMASK})"; \
|
|
|
|
${ECHO_MSG} "and install this package again by \`\`${MAKE} deinstall reinstall''."; \
|
1997-08-20 12:21:05 +02:00
|
|
|
fi
|
|
|
|
.if !defined(NO_MTREE)
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}if [ `${ID} -u` = 0 ]; then \
|
|
|
|
if [ ! -f ${MTREE_FILE} ]; then \
|
1997-09-28 02:44:15 +02:00
|
|
|
${ECHO_MSG} "Error: mtree file \"${MTREE_FILE}\" is missing."; \
|
1999-03-08 18:26:54 +01:00
|
|
|
exit 1; \
|
|
|
|
else \
|
|
|
|
if [ ! -d ${PREFIX} ]; then \
|
2001-06-12 15:17:01 +02:00
|
|
|
${MKDIR} ${PREFIX}; \
|
1999-03-08 18:26:54 +01:00
|
|
|
fi; \
|
1999-06-23 19:06:20 +02:00
|
|
|
${MTREE} ${MTREE_ARGS} ${PREFIX}/; \
|
1999-03-08 18:26:54 +01:00
|
|
|
fi; \
|
|
|
|
else \
|
1997-08-20 12:21:05 +02:00
|
|
|
${ECHO_MSG} "Warning: not superuser, can't run mtree."; \
|
|
|
|
${ECHO_MSG} "Become root and try again to ensure correct permissions."; \
|
|
|
|
fi
|
1999-03-31 11:04:18 +02:00
|
|
|
.endif # !NO_MTREE
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${.CURDIR} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKEFLAGS} pre-install
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${.CURDIR} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKEFLAGS} do-install
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${.CURDIR} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKEFLAGS} post-install
|
1999-03-08 18:26:54 +01:00
|
|
|
.for f in ${INFO_FILES}
|
1999-05-05 00:44:10 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${ECHO} "install-info --info-dir=${PREFIX}/info ${PREFIX}/info/${f}"; \
|
1999-03-08 18:26:54 +01:00
|
|
|
install-info --remove --info-dir=${PREFIX}/info ${PREFIX}/info/${f}; \
|
|
|
|
install-info --info-dir=${PREFIX}/info ${PREFIX}/info/${f}
|
|
|
|
.endfor
|
2000-11-29 15:52:57 +01:00
|
|
|
@# PLIST must be generated at this late point (instead of
|
|
|
|
@# depending on it somewhere earlier), as the
|
|
|
|
@# pre/do/post-install aren't run then yet:
|
|
|
|
@${_PKG_SILENT}${_PKG_DEBUG}cd ${.CURDIR} && ${MAKE} ${MAKEFLAGS} ${PLIST}
|
2000-06-03 01:30:52 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}newmanpages=`${EGREP} -h \
|
1999-09-21 14:53:14 +02:00
|
|
|
'^([^@/]*/)*man/([^/]*/)?(man[1-9ln]/.*\.[1-9ln]|cat[1-9ln]/.*\.0)(\.gz)?$$' \
|
2000-02-12 18:24:41 +01:00
|
|
|
${PLIST} 2>/dev/null || ${TRUE}`; \
|
1998-06-18 13:45:33 +02:00
|
|
|
if [ X"${MANCOMPRESSED}" != X"" -a X"${MANZ}" = X"" ]; then \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> [Automatic manual page handling]"; \
|
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Decompressing manual pages for ${PKGNAME}"; \
|
1998-06-22 11:12:48 +02:00
|
|
|
for manpage in $$newmanpages; do \
|
1998-06-18 13:45:33 +02:00
|
|
|
manpage=`${ECHO} $$manpage | ${SED} -e 's|\.gz$$||'`; \
|
1999-08-24 21:03:08 +02:00
|
|
|
if [ -h ${PREFIX}/$$manpage.gz ]; then \
|
2001-07-15 14:40:03 +02:00
|
|
|
set - `${FILE_CMD} ${PREFIX}/$$manpage.gz | ${SED} -e 's|\.gz$$||'`; \
|
1998-11-19 23:59:03 +01:00
|
|
|
shift `expr $$# - 1`; \
|
1999-03-09 16:31:59 +01:00
|
|
|
${RM} -f ${PREFIX}/$$manpage; \
|
|
|
|
${LN} -s $${1} ${PREFIX}/$$manpage; \
|
1998-11-19 23:59:03 +01:00
|
|
|
${RM} ${PREFIX}/$$manpage.gz; \
|
|
|
|
else \
|
|
|
|
${GUNZIP_CMD} ${PREFIX}/$$manpage.gz; \
|
|
|
|
fi; \
|
1998-06-18 13:45:33 +02:00
|
|
|
if [ X"${PKG_VERBOSE}" != X"" ]; then \
|
|
|
|
${ECHO_MSG} "$$manpage"; \
|
|
|
|
fi; \
|
|
|
|
done; \
|
|
|
|
fi; \
|
|
|
|
if [ X"${MANCOMPRESSED}" = X"" -a X"${MANZ}" != X"" ]; then \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> [Automatic manual page handling]"; \
|
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Compressing manual pages for ${PKGNAME}"; \
|
1998-06-22 11:12:48 +02:00
|
|
|
for manpage in $$newmanpages; do \
|
1998-06-18 13:45:33 +02:00
|
|
|
manpage=`${ECHO} $$manpage | ${SED} -e 's|\.gz$$||'`; \
|
1999-08-24 21:03:08 +02:00
|
|
|
if [ -h ${PREFIX}/$$manpage ]; then \
|
2001-07-15 14:40:03 +02:00
|
|
|
set - `${FILE_CMD} ${PREFIX}/$$manpage`; \
|
1998-06-18 13:45:33 +02:00
|
|
|
shift `expr $$# - 1`; \
|
1999-03-09 16:31:59 +01:00
|
|
|
${RM} -f ${PREFIX}/$$manpage.gz; \
|
|
|
|
${LN} -s $${1}.gz ${PREFIX}/$$manpage.gz; \
|
1998-06-18 13:45:33 +02:00
|
|
|
${RM} ${PREFIX}/$$manpage; \
|
|
|
|
else \
|
|
|
|
${GZIP_CMD} ${PREFIX}/$$manpage; \
|
|
|
|
fi; \
|
|
|
|
if [ X"${PKG_VERBOSE}" != X"" ]; then \
|
|
|
|
${ECHO_MSG} "$$manpage"; \
|
|
|
|
fi; \
|
|
|
|
done; \
|
2000-06-03 01:30:52 +02:00
|
|
|
fi
|
1999-10-19 16:08:47 +02:00
|
|
|
.if ${OPSYS} == "NetBSD" || ${OPSYS} == "SunOS"
|
2000-11-29 14:18:22 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}\
|
|
|
|
${MAKE} ${MAKEFLAGS} do-shlib-handling SHLIB_PLIST_MODE=0
|
|
|
|
.endif # OPSYS == "NetBSD" || OPSYS == "SunOS"
|
2001-01-29 12:34:21 +01:00
|
|
|
.ifdef MESSAGE
|
2000-11-29 14:18:22 +01:00
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> Please note the following:"
|
|
|
|
@${ECHO_MSG} ""
|
2001-01-29 12:34:21 +01:00
|
|
|
@${CAT} ${MESSAGE}
|
2000-11-29 14:18:22 +01:00
|
|
|
@${ECHO_MSG} ""
|
|
|
|
.endif
|
|
|
|
.if !defined(NO_PKG_REGISTER)
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${.CURDIR} && ${MAKE} ${MAKEFLAGS} fake-pkg
|
|
|
|
.endif # !NO_PKG_REGISTER
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_FLAGS} ${INSTALL_COOKIE}
|
|
|
|
.if defined(PKG_DEVELOPER) && (${CHECK_SHLIBS} == "YES")
|
|
|
|
@${MAKE} ${MAKEFLAGS} check-shlibs
|
|
|
|
.endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Do handling of shared libs for two cases:
|
|
|
|
#
|
|
|
|
# SHLIB_PLIST_MODE=1: when first called via the ${PLIST} target,
|
|
|
|
# update the PLIST to contain ELF symlink, run
|
|
|
|
# ldconfig on a.out, etc. (used when called via
|
|
|
|
# the ${PLIST} target). Will update ${PLIST}.
|
|
|
|
# SHLIB_PLIST_MODE=0: when called via the real-su-install target,
|
|
|
|
# actually generate symlinks for ELF, run ldconfig
|
|
|
|
# for a.out, etc. Will not modify ${PLIST}.
|
|
|
|
#
|
|
|
|
# XXX This target could need some cleanup after it was ripped out of
|
|
|
|
# real-su-install
|
|
|
|
#
|
|
|
|
do-shlib-handling:
|
2000-12-31 13:21:07 +01:00
|
|
|
.if ${SHLIB_HANDLING} == "YES"
|
2000-06-03 01:30:52 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
1999-11-01 12:15:20 +01:00
|
|
|
sos=`${EGREP} -h -x '.*/lib[^/]+\.so\.[0-9]+(\.[0-9]+)+' ${PLIST} || ${TRUE}`; \
|
2000-11-29 14:18:22 +01:00
|
|
|
if [ "$$sos" != "" ]; then \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
shlib_type=`${MAKE} ${MAKEFLAGS} show-shlib-type`; \
|
2001-01-04 16:10:17 +01:00
|
|
|
if [ "${SHLIB_PLIST_MODE}" = "0" ]; then \
|
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> [Automatic $$shlib_type shared object handling]"; \
|
|
|
|
fi; \
|
Work out the type of shared libraries once, at "make install" time, and
do this dynamically. This means that we no longer have to have a
separate pkgsrc copy of bsd.own.mk, which was a maintenance nightmare,
and usually out of date, and quite costly too (with a calculation of
whether NetBSD-current was being run every time the file was read).
Also, on a.out, add ldconfig lines to the generated PLIST only if they're
not already there, rather than if they were previously there, and ignore
the return value from ldconfig, which cannot be trusted. The ldconfig
calls have largely been made obsolete by the use of -rpath, but keep it
for just now for backwards compatibility.
1999-04-13 16:18:11 +02:00
|
|
|
case "$$shlib_type" in \
|
2001-01-04 16:10:17 +01:00
|
|
|
ELF) ;; \
|
|
|
|
"a.out") \
|
|
|
|
${AWK} ' \
|
|
|
|
BEGIN { linkc = 1 } \
|
|
|
|
/^@/ { lines[NR] = $$0; next } \
|
2001-03-23 18:11:17 +01:00
|
|
|
function libtool_release(lib) { \
|
|
|
|
if (gsub("-[^-]+\.so\.", "\.so\.", lib)) { \
|
|
|
|
if (system("${TEST} -h ${PREFIX}/" lib) == 0) { \
|
|
|
|
rels[NR] = lib; \
|
|
|
|
} \
|
2001-04-21 14:40:58 +02:00
|
|
|
} \
|
2001-03-23 18:11:17 +01:00
|
|
|
} \
|
1999-10-20 11:57:47 +02:00
|
|
|
/.*\/lib[^\/]+\.so\.[0-9]+\.[0-9]+\.[0-9]+$$/ { \
|
2001-03-23 18:11:17 +01:00
|
|
|
libtool_release($$0); \
|
2001-01-04 16:10:17 +01:00
|
|
|
lines[NR] = $$0; \
|
|
|
|
sub("\.[0-9]+$$", ""); \
|
|
|
|
links[linkc++] = $$0; \
|
|
|
|
sub("\.[0-9]+$$", ""); \
|
|
|
|
links[linkc++] = $$0; \
|
|
|
|
sub("\.[0-9]+$$", ""); \
|
|
|
|
links[linkc++] = $$0; \
|
2001-05-18 18:23:20 +02:00
|
|
|
if (sub("-[^-]+\.so$$", "\.so")) { \
|
|
|
|
links[linkc++] = $$0; \
|
|
|
|
} \
|
2001-01-04 16:10:17 +01:00
|
|
|
next \
|
1999-10-20 11:57:47 +02:00
|
|
|
} \
|
|
|
|
/.*\/lib[^\/]+\.so\.[0-9]+\.[0-9]+$$/ { \
|
2001-03-23 18:11:17 +01:00
|
|
|
libtool_release($$0); \
|
2001-01-04 16:10:17 +01:00
|
|
|
lines[NR] = $$0; \
|
|
|
|
sub("\.[0-9]+$$", ""); \
|
|
|
|
links[linkc++] = $$0; \
|
|
|
|
sub("\.[0-9]+$$", ""); \
|
|
|
|
links[linkc++] = $$0; \
|
2001-05-18 18:23:20 +02:00
|
|
|
if (sub("-[^-]+\.so$$", "\.so")) { \
|
|
|
|
links[linkc++] = $$0; \
|
|
|
|
} \
|
2001-01-04 16:10:17 +01:00
|
|
|
next \
|
1999-10-20 11:57:47 +02:00
|
|
|
} \
|
2001-01-04 16:10:17 +01:00
|
|
|
{ lines[NR] = $$0 } \
|
|
|
|
END { \
|
|
|
|
for (i = 1 ; i <= linkc ; i++) \
|
|
|
|
for (j = 1 ; j < NR ; j++) \
|
|
|
|
if (lines[j] == links[i]) \
|
|
|
|
lines[j] = "@comment " lines[j]; \
|
|
|
|
if (${SHLIB_PLIST_MODE}) \
|
2001-03-23 18:11:17 +01:00
|
|
|
for (i = 1 ; i <= NR ; i++) { \
|
2001-01-04 16:10:17 +01:00
|
|
|
print lines[i]; \
|
2001-03-23 18:11:17 +01:00
|
|
|
if (rels[i] != "") \
|
|
|
|
print rels[i]; \
|
|
|
|
} \
|
2000-11-29 14:18:22 +01:00
|
|
|
} \
|
2001-01-04 16:10:17 +01:00
|
|
|
' <${PLIST} >${PLIST}.tmp ; \
|
|
|
|
if [ "${SHLIB_PLIST_MODE}" = "1" ]; then \
|
|
|
|
${MV} ${PLIST}.tmp ${PLIST}; \
|
|
|
|
else \
|
|
|
|
${RM} ${PLIST}.tmp ; \
|
2000-11-29 14:18:22 +01:00
|
|
|
fi ; \
|
1999-04-14 21:44:24 +02:00
|
|
|
cnt=`${EGREP} -c -x '@exec[ ]*${LDCONFIG}' ${PLIST} || ${TRUE}`; \
|
2000-11-29 14:18:22 +01:00
|
|
|
if [ "${SHLIB_PLIST_MODE}" = "1" ]; then \
|
|
|
|
if [ $$cnt -eq 0 ]; then \
|
|
|
|
${ECHO} "@exec ${LDCONFIG}" >> ${PLIST}; \
|
|
|
|
${ECHO} "@unexec ${LDCONFIG}" >> ${PLIST}; \
|
|
|
|
fi \
|
1998-07-14 13:36:11 +02:00
|
|
|
fi; \
|
2000-11-29 14:18:22 +01:00
|
|
|
if [ "${SHLIB_PLIST_MODE}" = "0" ]; then \
|
|
|
|
if [ "${PKG_VERBOSE}" != "" ]; then \
|
|
|
|
${ECHO_MSG} "$$sos"; \
|
|
|
|
${ECHO_MSG} "Running ${LDCONFIG}"; \
|
|
|
|
fi; \
|
|
|
|
${LDCONFIG} || ${TRUE}; \
|
|
|
|
fi \
|
1998-07-14 17:53:54 +02:00
|
|
|
;; \
|
1999-03-08 18:26:54 +01:00
|
|
|
"*") \
|
2000-11-29 14:18:22 +01:00
|
|
|
if [ "${SHLIB_PLIST_MODE}" = "0" ]; then \
|
|
|
|
${ECHO_MSG} "No shared libraries for ${MACHINE_ARCH}"; \
|
|
|
|
fi ; \
|
|
|
|
if [ "${SHLIB_PLIST_MODE}" = "1" ]; then \
|
|
|
|
for so in $$sos; do \
|
|
|
|
if [ X"${PKG_VERBOSE}" != X"" ]; then \
|
|
|
|
${ECHO_MSG} >&2 "Ignoring $$so"; \
|
|
|
|
fi; \
|
|
|
|
${SED} -e "s;^$$so$$;@comment No shared objects - &;" \
|
2001-01-29 15:40:26 +01:00
|
|
|
${PLIST} >${PLIST}.tmp && ${MV} ${PLIST}.tmp ${PLIST}; \
|
2000-11-29 14:18:22 +01:00
|
|
|
done; \
|
|
|
|
fi ; \
|
1998-07-14 17:53:54 +02:00
|
|
|
;; \
|
|
|
|
esac; \
|
2000-06-03 01:30:52 +02:00
|
|
|
fi
|
2000-12-31 13:21:07 +01:00
|
|
|
.endif # SHLIB_HANDLING == "YES"
|
1999-03-31 11:04:18 +02:00
|
|
|
|
2000-06-27 22:14:45 +02:00
|
|
|
|
|
|
|
# Check if all binaries and shlibs find their needed libs
|
|
|
|
# Must be run after "make install", so that files are installed, and
|
|
|
|
# ${PLIST} exists.
|
|
|
|
#
|
|
|
|
check-shlibs:
|
2001-03-07 01:26:26 +01:00
|
|
|
.if !defined(NO_PKG_REGISTER)
|
2000-06-27 22:14:45 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}\
|
2001-04-03 14:06:31 +02:00
|
|
|
bins=`${PKG_INFO} -qL ${PKGNAME} | { ${EGREP} -h '/(bin|sbin|libexec)/' || ${TRUE}; }`; \
|
2000-06-27 22:14:45 +02:00
|
|
|
if [ "${OBJECT_FMT}" = "ELF" ]; then \
|
2001-04-03 14:06:31 +02:00
|
|
|
shlibs=`${PKG_INFO} -qL ${PKGNAME} | { ${EGREP} -h '/lib/lib.*.so' || ${TRUE}; }`; \
|
2000-06-27 22:14:45 +02:00
|
|
|
else \
|
|
|
|
shlibs=""; \
|
|
|
|
fi ; \
|
2000-08-25 01:29:26 +02:00
|
|
|
if [ X${LDD} = X ]; then \
|
|
|
|
ldd=`${TYPE} ldd | ${AWK} '{ print $$NF }'` ; \
|
|
|
|
else \
|
|
|
|
ldd="${LDD}" ; \
|
|
|
|
fi ; \
|
2000-06-27 22:14:45 +02:00
|
|
|
for i in $${bins} $${shlibs} ; do \
|
2001-04-03 14:06:31 +02:00
|
|
|
err=`{ $$ldd $$i 2>&1 || ${TRUE}; } | { ${GREP} "not found" || ${TRUE}; }`; \
|
2000-06-27 22:14:45 +02:00
|
|
|
if [ "${PKG_VERBOSE}" != "" ]; then \
|
2001-06-12 14:49:55 +02:00
|
|
|
${ECHO} "$$ldd $$i" ; \
|
2000-06-27 22:14:45 +02:00
|
|
|
fi ; \
|
|
|
|
if [ "$$err" != "" ]; then \
|
2001-06-12 14:49:55 +02:00
|
|
|
${ECHO} "$$i: $$err" ; \
|
2000-06-27 22:14:45 +02:00
|
|
|
error=1; \
|
|
|
|
fi ; \
|
|
|
|
done ; \
|
|
|
|
if [ "$$error" = 1 ]; then \
|
|
|
|
${ECHO} "*** The above programs/libs will not find the listed shared libraries"; \
|
|
|
|
${ECHO} " at runtime. Please fix the package (add -Wl,-R.../lib in the right places)!" ; \
|
|
|
|
${SHCOMMENT} Might not error-out for non-pkg-developers; \
|
|
|
|
exit 1 ; \
|
|
|
|
fi
|
2001-03-07 01:26:26 +01:00
|
|
|
.endif # NO_PKG_REGISTER
|
2000-06-27 22:14:45 +02:00
|
|
|
|
|
|
|
|
2000-01-15 03:08:03 +01:00
|
|
|
.if !target(show-shlib-type)
|
Work out the type of shared libraries once, at "make install" time, and
do this dynamically. This means that we no longer have to have a
separate pkgsrc copy of bsd.own.mk, which was a maintenance nightmare,
and usually out of date, and quite costly too (with a calculation of
whether NetBSD-current was being run every time the file was read).
Also, on a.out, add ldconfig lines to the generated PLIST only if they're
not already there, rather than if they were previously there, and ignore
the return value from ldconfig, which cannot be trusted. The ldconfig
calls have largely been made obsolete by the use of -rpath, but keep it
for just now for backwards compatibility.
1999-04-13 16:18:11 +02:00
|
|
|
# Show the shared lib type being built: one of ELF, a.out or none
|
|
|
|
show-shlib-type:
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
cd ${WRKDIR} && \
|
|
|
|
sotype=none; \
|
1999-05-02 05:24:59 +02:00
|
|
|
if [ "X${MKPIC}" != "Xno" -a "X${NOPIC}" = "X" ]; then \
|
Work out the type of shared libraries once, at "make install" time, and
do this dynamically. This means that we no longer have to have a
separate pkgsrc copy of bsd.own.mk, which was a maintenance nightmare,
and usually out of date, and quite costly too (with a calculation of
whether NetBSD-current was being run every time the file was read).
Also, on a.out, add ldconfig lines to the generated PLIST only if they're
not already there, rather than if they were previously there, and ignore
the return value from ldconfig, which cannot be trusted. The ldconfig
calls have largely been made obsolete by the use of -rpath, but keep it
for just now for backwards compatibility.
1999-04-13 16:18:11 +02:00
|
|
|
${ECHO} "int main() { exit(0); }" > a.$$$$.c; \
|
|
|
|
${CC} ${CFLAGS} a.$$$$.c -o a.$$$$.out; \
|
2001-07-15 14:40:03 +02:00
|
|
|
case `${FILE_CMD} a.$$$$.out` in \
|
Work out the type of shared libraries once, at "make install" time, and
do this dynamically. This means that we no longer have to have a
separate pkgsrc copy of bsd.own.mk, which was a maintenance nightmare,
and usually out of date, and quite costly too (with a calculation of
whether NetBSD-current was being run every time the file was read).
Also, on a.out, add ldconfig lines to the generated PLIST only if they're
not already there, rather than if they were previously there, and ignore
the return value from ldconfig, which cannot be trusted. The ldconfig
calls have largely been made obsolete by the use of -rpath, but keep it
for just now for backwards compatibility.
1999-04-13 16:18:11 +02:00
|
|
|
*ELF*dynamically*) \
|
|
|
|
sotype=ELF ;; \
|
2001-02-12 02:17:24 +01:00
|
|
|
*shared*library*) \
|
|
|
|
sotype="a.out" ;; \
|
Work out the type of shared libraries once, at "make install" time, and
do this dynamically. This means that we no longer have to have a
separate pkgsrc copy of bsd.own.mk, which was a maintenance nightmare,
and usually out of date, and quite costly too (with a calculation of
whether NetBSD-current was being run every time the file was read).
Also, on a.out, add ldconfig lines to the generated PLIST only if they're
not already there, rather than if they were previously there, and ignore
the return value from ldconfig, which cannot be trusted. The ldconfig
calls have largely been made obsolete by the use of -rpath, but keep it
for just now for backwards compatibility.
1999-04-13 16:18:11 +02:00
|
|
|
*dynamically*) \
|
|
|
|
sotype="a.out" ;; \
|
|
|
|
esac; \
|
|
|
|
fi; \
|
|
|
|
${ECHO} "$$sotype"; \
|
|
|
|
${RM} -f a.$$$$.c a.$$$$.out
|
2000-01-15 03:08:03 +01:00
|
|
|
.endif
|
Work out the type of shared libraries once, at "make install" time, and
do this dynamically. This means that we no longer have to have a
separate pkgsrc copy of bsd.own.mk, which was a maintenance nightmare,
and usually out of date, and quite costly too (with a calculation of
whether NetBSD-current was being run every time the file was read).
Also, on a.out, add ldconfig lines to the generated PLIST only if they're
not already there, rather than if they were previously there, and ignore
the return value from ldconfig, which cannot be trusted. The ldconfig
calls have largely been made obsolete by the use of -rpath, but keep it
for just now for backwards compatibility.
1999-04-13 16:18:11 +02:00
|
|
|
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
################################################################
|
|
|
|
# Skeleton targets start here
|
|
|
|
#
|
|
|
|
# You shouldn't have to change these. Either add the pre-* or
|
|
|
|
# post-* targets/scripts or redefine the do-* targets. These
|
|
|
|
# targets don't do anything other than checking for cookies and
|
|
|
|
# call the necessary targets/scripts.
|
|
|
|
################################################################
|
|
|
|
|
|
|
|
.if !target(fetch)
|
|
|
|
fetch:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
@cd ${.CURDIR} && ${MAKE} ${MAKEFLAGS} real-fetch
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
.if !target(extract)
|
|
|
|
extract: checksum ${EXTRACT_COOKIE}
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if !target(patch)
|
|
|
|
patch: extract ${PATCH_COOKIE}
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if !target(configure)
|
|
|
|
configure: patch ${CONFIGURE_COOKIE}
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if !target(build)
|
|
|
|
build: configure ${BUILD_COOKIE}
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if !target(install)
|
1998-10-19 14:50:51 +02:00
|
|
|
install: uptodate-pkgtools build ${INSTALL_COOKIE}
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
.if !target(package)
|
1998-10-19 14:50:51 +02:00
|
|
|
package: uptodate-pkgtools install ${PACKAGE_COOKIE}
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
${EXTRACT_COOKIE}:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${.CURDIR} && ${MAKE} ${MAKEFLAGS} real-extract DEPENDS_TARGET=${DEPENDS_TARGET}
|
1997-08-20 12:21:05 +02:00
|
|
|
${PATCH_COOKIE}:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${.CURDIR} && ${MAKE} ${MAKEFLAGS} real-patch
|
1997-08-20 12:21:05 +02:00
|
|
|
${CONFIGURE_COOKIE}:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${.CURDIR} && ${MAKE} ${MAKEFLAGS} real-configure
|
1997-08-20 12:21:05 +02:00
|
|
|
${BUILD_COOKIE}:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${.CURDIR} && ${MAKE} ${MAKEFLAGS} real-build
|
1997-08-20 12:21:05 +02:00
|
|
|
${INSTALL_COOKIE}:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${.CURDIR} && ${MAKE} ${MAKEFLAGS} real-install
|
1997-08-20 12:21:05 +02:00
|
|
|
${PACKAGE_COOKIE}:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${.CURDIR} && ${MAKE} ${MAKEFLAGS} real-package
|
1997-08-20 12:21:05 +02:00
|
|
|
|
Following on from the removal of the automatic "is there a script to run" logic,
more speedups for building packages.
Get rid of a .USE macro, and do not spawn sub-makes for the pre-, do- and
post-target stages, replacing them with standard make(1) targets.
Timing information as follows (multiple runs performed, best results taken):
800 MHz Celeron, 128 MB, local pkgsrc, local obj
scripts/, pre,do,post-*: 0.731u 0.261s 0:02.04 48.5% 0+0k 29+168io 9pf+0w
no scripts/, pre,do,post-*: 0.678u 0.242s 0:01.30 70.0% 0+0k 0+169io 0pf+0w
no scripts/, no pre,do,post-*: 0.267u 0.089s 0:00.90 37.7% 0+0k 0+155io 0pf+0w
40 MHz Sparc, 36 MB, nfs pkgsrc, local obj
scripts/, pre,do,post-*: 22.590u 6.839s 0:33.31 88.3% 0+0k 121+254io 0pf+0w
no scripts/, pre,do,post-*: 22.481u 6.442s 0:33.30 86.8% 0+0k 120+251io 0pf+0w
no scripts/, no pre,do,post-*: 8.534u 4.189s 0:16.48 77.1% 0+0k 105+242io 0pf+0w
2001-11-08 10:29:56 +01:00
|
|
|
extract-message:
|
2000-03-13 15:19:15 +01:00
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> Extracting for ${PKGNAME}"
|
Following on from the removal of the automatic "is there a script to run" logic,
more speedups for building packages.
Get rid of a .USE macro, and do not spawn sub-makes for the pre-, do- and
post-target stages, replacing them with standard make(1) targets.
Timing information as follows (multiple runs performed, best results taken):
800 MHz Celeron, 128 MB, local pkgsrc, local obj
scripts/, pre,do,post-*: 0.731u 0.261s 0:02.04 48.5% 0+0k 29+168io 9pf+0w
no scripts/, pre,do,post-*: 0.678u 0.242s 0:01.30 70.0% 0+0k 0+169io 0pf+0w
no scripts/, no pre,do,post-*: 0.267u 0.089s 0:00.90 37.7% 0+0k 0+155io 0pf+0w
40 MHz Sparc, 36 MB, nfs pkgsrc, local obj
scripts/, pre,do,post-*: 22.590u 6.839s 0:33.31 88.3% 0+0k 121+254io 0pf+0w
no scripts/, pre,do,post-*: 22.481u 6.442s 0:33.30 86.8% 0+0k 120+251io 0pf+0w
no scripts/, no pre,do,post-*: 8.534u 4.189s 0:16.48 77.1% 0+0k 105+242io 0pf+0w
2001-11-08 10:29:56 +01:00
|
|
|
patch-message:
|
2000-03-13 15:19:15 +01:00
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> Patching for ${PKGNAME}"
|
Following on from the removal of the automatic "is there a script to run" logic,
more speedups for building packages.
Get rid of a .USE macro, and do not spawn sub-makes for the pre-, do- and
post-target stages, replacing them with standard make(1) targets.
Timing information as follows (multiple runs performed, best results taken):
800 MHz Celeron, 128 MB, local pkgsrc, local obj
scripts/, pre,do,post-*: 0.731u 0.261s 0:02.04 48.5% 0+0k 29+168io 9pf+0w
no scripts/, pre,do,post-*: 0.678u 0.242s 0:01.30 70.0% 0+0k 0+169io 0pf+0w
no scripts/, no pre,do,post-*: 0.267u 0.089s 0:00.90 37.7% 0+0k 0+155io 0pf+0w
40 MHz Sparc, 36 MB, nfs pkgsrc, local obj
scripts/, pre,do,post-*: 22.590u 6.839s 0:33.31 88.3% 0+0k 121+254io 0pf+0w
no scripts/, pre,do,post-*: 22.481u 6.442s 0:33.30 86.8% 0+0k 120+251io 0pf+0w
no scripts/, no pre,do,post-*: 8.534u 4.189s 0:16.48 77.1% 0+0k 105+242io 0pf+0w
2001-11-08 10:29:56 +01:00
|
|
|
configure-message:
|
2000-03-13 15:19:15 +01:00
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> Configuring for ${PKGNAME}"
|
Following on from the removal of the automatic "is there a script to run" logic,
more speedups for building packages.
Get rid of a .USE macro, and do not spawn sub-makes for the pre-, do- and
post-target stages, replacing them with standard make(1) targets.
Timing information as follows (multiple runs performed, best results taken):
800 MHz Celeron, 128 MB, local pkgsrc, local obj
scripts/, pre,do,post-*: 0.731u 0.261s 0:02.04 48.5% 0+0k 29+168io 9pf+0w
no scripts/, pre,do,post-*: 0.678u 0.242s 0:01.30 70.0% 0+0k 0+169io 0pf+0w
no scripts/, no pre,do,post-*: 0.267u 0.089s 0:00.90 37.7% 0+0k 0+155io 0pf+0w
40 MHz Sparc, 36 MB, nfs pkgsrc, local obj
scripts/, pre,do,post-*: 22.590u 6.839s 0:33.31 88.3% 0+0k 121+254io 0pf+0w
no scripts/, pre,do,post-*: 22.481u 6.442s 0:33.30 86.8% 0+0k 120+251io 0pf+0w
no scripts/, no pre,do,post-*: 8.534u 4.189s 0:16.48 77.1% 0+0k 105+242io 0pf+0w
2001-11-08 10:29:56 +01:00
|
|
|
build-message:
|
2000-03-13 15:19:15 +01:00
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> Building for ${PKGNAME}"
|
Following on from the removal of the automatic "is there a script to run" logic,
more speedups for building packages.
Get rid of a .USE macro, and do not spawn sub-makes for the pre-, do- and
post-target stages, replacing them with standard make(1) targets.
Timing information as follows (multiple runs performed, best results taken):
800 MHz Celeron, 128 MB, local pkgsrc, local obj
scripts/, pre,do,post-*: 0.731u 0.261s 0:02.04 48.5% 0+0k 29+168io 9pf+0w
no scripts/, pre,do,post-*: 0.678u 0.242s 0:01.30 70.0% 0+0k 0+169io 0pf+0w
no scripts/, no pre,do,post-*: 0.267u 0.089s 0:00.90 37.7% 0+0k 0+155io 0pf+0w
40 MHz Sparc, 36 MB, nfs pkgsrc, local obj
scripts/, pre,do,post-*: 22.590u 6.839s 0:33.31 88.3% 0+0k 121+254io 0pf+0w
no scripts/, pre,do,post-*: 22.481u 6.442s 0:33.30 86.8% 0+0k 120+251io 0pf+0w
no scripts/, no pre,do,post-*: 8.534u 4.189s 0:16.48 77.1% 0+0k 105+242io 0pf+0w
2001-11-08 10:29:56 +01:00
|
|
|
|
|
|
|
extract-cookie:
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${ECHO} ${PKGNAME} >> ${EXTRACT_COOKIE}
|
|
|
|
patch-cookie:
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} ${TOUCH} ${TOUCH_FLAGS} ${PATCH_COOKIE}
|
|
|
|
configure-cookie:
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} ${TOUCH} ${TOUCH_FLAGS} ${CONFIGURE_COOKIE}
|
|
|
|
build-cookie:
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} ${TOUCH} ${TOUCH_FLAGS} ${BUILD_COOKIE}
|
|
|
|
|
|
|
|
.ORDER: pre-fetch do-fetch post-fetch
|
|
|
|
.ORDER: extract-message install-depends pre-extract do-extract post-extract extract-cookie
|
|
|
|
.ORDER: patch-message pre-patch do-patch post-patch patch-cookie
|
|
|
|
.ORDER: configure-message pre-configure do-configure post-configure configure-cookie
|
|
|
|
.ORDER: build-message pre-build do-build post-build build-cookie
|
|
|
|
|
|
|
|
# Please note that the order of the following targets is important, and
|
|
|
|
# should not be modified (.ORDER is not recognised by make(1) in a serial
|
|
|
|
# make i.e. without -j n)
|
|
|
|
real-fetch: pre-fetch do-fetch post-fetch
|
|
|
|
real-extract: extract-message install-depends pre-extract do-extract post-extract extract-cookie
|
|
|
|
real-patch: patch-message pre-patch do-patch post-patch patch-cookie
|
|
|
|
real-configure: configure-message pre-configure do-configure post-configure configure-cookie
|
|
|
|
real-build: build-message pre-build do-build post-build build-cookie
|
2000-11-29 14:18:22 +01:00
|
|
|
real-install: do-su-install
|
2001-09-12 12:38:12 +02:00
|
|
|
real-package: do-su-package
|
1997-08-20 12:21:05 +02:00
|
|
|
|
2001-09-12 12:38:12 +02:00
|
|
|
_SU_TARGET= \
|
1999-03-31 11:04:18 +02:00
|
|
|
if [ `${ID} -u` = 0 ]; then \
|
2001-09-12 12:38:12 +02:00
|
|
|
${MAKE} ${MAKEFLAGS} $$realtarget; \
|
1999-04-06 16:11:10 +02:00
|
|
|
elif [ "X${BATCH}" != X"" ]; then \
|
|
|
|
${ECHO_MSG} "Warning: Batch mode, not superuser, can't run mtree."; \
|
|
|
|
${ECHO_MSG} "Become root and try again to ensure correct permissions."; \
|
1999-03-31 11:04:18 +02:00
|
|
|
else \
|
1999-04-06 16:11:10 +02:00
|
|
|
args=""; \
|
|
|
|
if [ "X${FORCE_PKG_REGISTER}" != X"" ]; then \
|
|
|
|
args="FORCE_PKG_REGISTER=1"; \
|
|
|
|
fi; \
|
|
|
|
if [ "X${PKG_DEBUG_LEVEL}" != X"" ]; then \
|
|
|
|
args="$$args PKG_DEBUG_LEVEL=${PKG_DEBUG_LEVEL}"; \
|
|
|
|
fi; \
|
|
|
|
if [ "X${PRE_ROOT_CMD}" != "X${TRUE}" ]; then \
|
|
|
|
${ECHO} "*** WARNING *** Running: ${PRE_ROOT_CMD}"; \
|
|
|
|
${PRE_ROOT_CMD}; \
|
|
|
|
fi; \
|
2001-10-01 23:15:11 +02:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Becoming root@`/bin/hostname` to $$action ${PKGNAME}."; \
|
1999-04-06 16:11:10 +02:00
|
|
|
${ECHO_MSG} -n "`${ECHO} ${SU_CMD} | ${AWK} '{ print $$1 }'` ";\
|
2001-09-12 12:38:12 +02:00
|
|
|
${SU_CMD} "cd ${.CURDIR}; ${MAKE} $$args ${MAKEFLAGS} $$realtarget $$realflags"; \
|
1999-03-31 11:04:18 +02:00
|
|
|
fi
|
|
|
|
|
2001-09-12 12:38:12 +02:00
|
|
|
do-su-install:
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
extractname=`${CAT} ${EXTRACT_COOKIE}`; \
|
|
|
|
case "$$extractname" in \
|
|
|
|
"") ${ECHO_MSG} "*** Warning: ${WRKDIR} may contain an older version of ${PKGBASE}" ;; \
|
|
|
|
"${PKGNAME}") ;; \
|
|
|
|
*) ${ECHO_MSG} "*** Error: Package version $$extractname in ${WRKDIR}"; \
|
|
|
|
${ECHO_MSG} "*** Current version ${PKGNAME} in pkgsrc directory"; \
|
|
|
|
${ECHO_MSG} "*** Please rebuild the package using the newer version: \"${MAKE} clean && ${MAKE}\""; \
|
|
|
|
exit 1 ;; \
|
|
|
|
esac
|
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> Installing for ${PKGNAME}"
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
realtarget="real-su-install"; \
|
2001-10-01 23:15:11 +02:00
|
|
|
action="install"; \
|
2001-09-12 12:38:12 +02:00
|
|
|
${_SU_TARGET}
|
|
|
|
|
|
|
|
do-su-package:
|
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> Packaging ${PKGNAME}"
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
realtarget="real-su-package"; \
|
2001-10-01 23:15:11 +02:00
|
|
|
action="package"; \
|
2001-09-12 12:38:12 +02:00
|
|
|
${_SU_TARGET}
|
|
|
|
|
|
|
|
|
Following on from the removal of the automatic "is there a script to run" logic,
more speedups for building packages.
Get rid of a .USE macro, and do not spawn sub-makes for the pre-, do- and
post-target stages, replacing them with standard make(1) targets.
Timing information as follows (multiple runs performed, best results taken):
800 MHz Celeron, 128 MB, local pkgsrc, local obj
scripts/, pre,do,post-*: 0.731u 0.261s 0:02.04 48.5% 0+0k 29+168io 9pf+0w
no scripts/, pre,do,post-*: 0.678u 0.242s 0:01.30 70.0% 0+0k 0+169io 0pf+0w
no scripts/, no pre,do,post-*: 0.267u 0.089s 0:00.90 37.7% 0+0k 0+155io 0pf+0w
40 MHz Sparc, 36 MB, nfs pkgsrc, local obj
scripts/, pre,do,post-*: 22.590u 6.839s 0:33.31 88.3% 0+0k 121+254io 0pf+0w
no scripts/, pre,do,post-*: 22.481u 6.442s 0:33.30 86.8% 0+0k 120+251io 0pf+0w
no scripts/, no pre,do,post-*: 8.534u 4.189s 0:16.48 77.1% 0+0k 105+242io 0pf+0w
2001-11-08 10:29:56 +01:00
|
|
|
# Empty pre-* and post-* targets
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
.for name in fetch extract patch configure build install package
|
|
|
|
|
2001-07-19 00:43:32 +02:00
|
|
|
. if !target(pre-${name})
|
1997-08-20 12:21:05 +02:00
|
|
|
pre-${name}:
|
|
|
|
@${DO_NADA}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1997-08-20 12:21:05 +02:00
|
|
|
|
2001-07-19 00:43:32 +02:00
|
|
|
. if !target(post-${name})
|
1997-08-20 12:21:05 +02:00
|
|
|
post-${name}:
|
|
|
|
@${DO_NADA}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
.endfor
|
|
|
|
|
|
|
|
# Reinstall
|
|
|
|
#
|
|
|
|
# Special target to re-run install
|
|
|
|
|
|
|
|
.if !target(reinstall)
|
2000-09-01 15:48:51 +02:00
|
|
|
reinstall:
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${RM} -f ${INSTALL_COOKIE} ${PACKAGE_COOKIE} ${PLIST}
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}DEPENDS_TARGET=${DEPENDS_TARGET} ${MAKE} ${MAKEFLAGS} install
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
1998-02-17 16:07:02 +01:00
|
|
|
# Deinstall
|
|
|
|
#
|
|
|
|
# Special target to remove installation
|
1999-03-08 18:26:54 +01:00
|
|
|
|
1998-02-17 16:07:02 +01:00
|
|
|
.if !target(deinstall)
|
2000-11-29 14:18:22 +01:00
|
|
|
deinstall: do-su-deinstall
|
1999-04-03 23:03:50 +02:00
|
|
|
|
2000-11-29 14:18:22 +01:00
|
|
|
do-su-deinstall: uptodate-pkgtools
|
2000-03-13 15:19:15 +01:00
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> Deinstalling for ${PKGNAME}"
|
1999-04-03 23:03:50 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2001-09-12 12:38:12 +02:00
|
|
|
realtarget="real-su-deinstall"; \
|
|
|
|
realflags="DEINSTALLDEPENDS=${DEINSTALLDEPENDS}"; \
|
2001-10-01 23:15:11 +02:00
|
|
|
action="deinstall"; \
|
2001-09-12 12:38:12 +02:00
|
|
|
${_SU_TARGET}
|
1999-08-21 03:17:59 +02:00
|
|
|
|
2001-07-19 00:43:32 +02:00
|
|
|
. if (${DEINSTALLDEPENDS} != "NO")
|
|
|
|
. if (${DEINSTALLDEPENDS} != "ALL")
|
1999-09-09 00:01:19 +02:00
|
|
|
# used for removing stuff in bulk builds
|
2000-11-29 14:18:22 +01:00
|
|
|
real-su-deinstall-flags+= -r -R
|
1999-09-09 00:01:19 +02:00
|
|
|
# used for "update" target
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2000-11-29 14:18:22 +01:00
|
|
|
real-su-deinstall-flags+= -r
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. endif
|
|
|
|
. ifdef PKG_VERBOSE
|
2000-11-29 14:18:22 +01:00
|
|
|
real-su-deinstall-flags+= -v
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1999-08-21 03:17:59 +02:00
|
|
|
|
2000-11-29 14:18:22 +01:00
|
|
|
real-su-deinstall:
|
1999-08-21 03:17:59 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2000-06-03 20:51:34 +02:00
|
|
|
found="`${PKG_INFO} -e \"${PKGWILDCARD}\" || ${TRUE}`"; \
|
1999-08-21 03:17:59 +02:00
|
|
|
if [ "$$found" != "" ]; then \
|
2000-11-29 14:18:22 +01:00
|
|
|
${ECHO} Running ${PKG_DELETE} ${real-su-deinstall-flags} $$found ; \
|
|
|
|
${PKG_DELETE} ${real-su-deinstall-flags} $$found || ${TRUE} ; \
|
1999-08-21 03:17:59 +02:00
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. if (${DEINSTALLDEPENDS} != "NO") && (${DEINSTALLDEPENDS} != "ALL")
|
2000-02-26 22:58:55 +01:00
|
|
|
@${SHCOMMENT} Also remove BUILD_DEPENDS:
|
2001-07-19 00:43:32 +02:00
|
|
|
. for pkg in ${BUILD_DEPENDS:C/:.*$//}
|
2000-02-26 22:58:55 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2000-06-03 20:51:34 +02:00
|
|
|
found="`${PKG_INFO} -e \"${pkg}\" || ${TRUE}`"; \
|
2000-02-26 22:58:55 +01:00
|
|
|
if [ "$$found" != "" ]; then \
|
|
|
|
${ECHO} Running ${PKG_DELETE} $$found ; \
|
2000-11-29 14:18:22 +01:00
|
|
|
${PKG_DELETE} ${real-su-deinstall-flags} $$found || ${TRUE} ; \
|
2000-02-26 22:58:55 +01:00
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. endfor
|
|
|
|
. endif # DEINSTALLDEPENDS
|
1999-04-20 22:28:11 +02:00
|
|
|
@${RM} -f ${INSTALL_COOKIE} ${PACKAGE_COOKIE}
|
|
|
|
.endif # target(deinstall)
|
1999-03-03 23:53:49 +01:00
|
|
|
|
1999-10-31 20:43:02 +01:00
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
################################################################
|
|
|
|
# Some more targets supplied for users' convenience
|
|
|
|
################################################################
|
|
|
|
|
1999-08-30 00:13:01 +02:00
|
|
|
# The 'update' target can be used to update a package and all
|
|
|
|
# currently installed packages that depend upon this package.
|
1999-10-31 20:43:02 +01:00
|
|
|
|
|
|
|
.if exists(${DDIR})
|
|
|
|
RESUMEUPDATE?= YES
|
2000-07-18 10:33:49 +02:00
|
|
|
CLEAR_DIRLIST?= NO
|
1999-10-31 20:43:02 +01:00
|
|
|
|
|
|
|
update:
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${ECHO_MSG} \
|
2000-03-13 15:19:15 +01:00
|
|
|
"${_PKGSRC_IN}> Resuming update for ${PKGNAME}"
|
2001-07-19 00:43:32 +02:00
|
|
|
. if ${REINSTALL} != "NO"
|
2000-07-21 08:30:04 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
${MAKE} ${MAKEFLAGS} deinstall DEINSTALLDEPENDS=ALL
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1999-10-31 20:43:02 +01:00
|
|
|
.else
|
|
|
|
RESUMEUPDATE?= NO
|
2000-07-18 10:33:49 +02:00
|
|
|
CLEAR_DIRLIST?= YES
|
1999-10-31 20:43:02 +01:00
|
|
|
|
1999-08-30 00:13:01 +02:00
|
|
|
update:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${MAKE} ${MAKEFLAGS} ${DDIR}
|
2000-02-01 17:30:07 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${MAKE} ${MAKEFLAGS} deinstall DEINSTALLDEPENDS=ALL
|
1999-10-31 20:43:02 +01:00
|
|
|
.endif
|
1999-08-30 00:13:01 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2000-10-22 10:22:24 +02:00
|
|
|
${MAKE} ${MAKEFLAGS} ${UPDATE_TARGET} KEEP_WRKDIR=YES \
|
|
|
|
DEPENDS_TARGET=${DEPENDS_TARGET}
|
1999-08-30 00:13:01 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2000-06-03 22:26:05 +02:00
|
|
|
[ ! -s ${DDIR} ] || for dep in `${CAT} ${DDIR}` ; do \
|
2000-07-20 19:46:45 +02:00
|
|
|
(if cd ../.. && cd "$${dep}" ; then \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Installing in $${dep}" && \
|
2000-07-21 08:30:04 +02:00
|
|
|
if [ "${RESUMEUPDATE}" = "NO" -o \
|
|
|
|
"${REINSTALL}" != "NO" ] ; then \
|
|
|
|
${MAKE} ${MAKEFLAGS} deinstall; \
|
1999-10-31 20:43:02 +01:00
|
|
|
fi && \
|
2000-10-22 10:22:24 +02:00
|
|
|
${MAKE} ${MAKEFLAGS} ${UPDATE_TARGET} \
|
|
|
|
DEPENDS_TARGET=${DEPENDS_TARGET} ; \
|
2000-02-01 17:30:07 +01:00
|
|
|
else \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Skipping removed directory $${dep}";\
|
2000-02-01 17:30:07 +01:00
|
|
|
fi) ; \
|
|
|
|
done
|
1999-10-31 20:43:02 +01:00
|
|
|
.if ${NOCLEAN} == "NO"
|
2000-02-01 17:30:07 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${MAKE} ${MAKEFLAGS} clean-update CLEAR_DIRLIST=YES
|
1999-10-31 20:43:02 +01:00
|
|
|
.endif
|
|
|
|
|
|
|
|
|
|
|
|
clean-update:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${MAKE} ${MAKEFLAGS} ${DDIR}
|
1999-10-31 20:43:02 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
if [ -s ${DDIR} ] ; then \
|
|
|
|
for dep in `${CAT} ${DDIR}` ; do \
|
2000-07-20 19:46:45 +02:00
|
|
|
(if cd ../.. && cd "$${dep}" ; then \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${MAKE} ${MAKEFLAGS} clean ; \
|
2000-02-01 17:30:07 +01:00
|
|
|
else \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Skipping removed directory $${dep}";\
|
2000-02-01 17:30:07 +01:00
|
|
|
fi) ; \
|
1999-10-31 20:43:02 +01:00
|
|
|
done ; \
|
|
|
|
fi
|
2000-07-18 10:33:49 +02:00
|
|
|
.if ${CLEAR_DIRLIST} != "NO"
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${MAKE} ${MAKEFLAGS} clean
|
1999-10-31 20:43:02 +01:00
|
|
|
.else
|
2000-02-01 17:30:07 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${MAKE} ${MAKEFLAGS} clean update-dirlist \
|
1999-10-31 20:43:02 +01:00
|
|
|
DIRLIST="`${CAT} ${DDIR}`" PKGLIST="`${CAT} ${DLIST}`"
|
2000-07-21 08:30:04 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${ECHO_MSG} \
|
|
|
|
"${_PKGSRC_IN}> Warning: preserved leftover directory list. Your next";\
|
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> \`\`${MAKE} update'' may fail. It is advised to use";\
|
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> \`\`${MAKE} update REINSTALL=YES'' instead!"
|
1999-10-31 20:43:02 +01:00
|
|
|
.endif
|
|
|
|
|
|
|
|
|
|
|
|
update-dirlist:
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} -p ${WRKDIR}
|
|
|
|
.ifdef PKGLIST
|
2001-07-19 00:43:32 +02:00
|
|
|
. for __tmp__ in ${PKGLIST}
|
1999-10-31 20:43:02 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${ECHO} >>${DLIST} "${__tmp__}"
|
2001-07-19 00:43:32 +02:00
|
|
|
. endfor
|
1999-10-31 20:43:02 +01:00
|
|
|
.endif
|
|
|
|
.ifdef DIRLIST
|
2001-07-19 00:43:32 +02:00
|
|
|
. for __tmp__ in ${DIRLIST}
|
1999-10-31 20:43:02 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${ECHO} >>${DDIR} "${__tmp__}"
|
2001-07-19 00:43:32 +02:00
|
|
|
. endfor
|
1999-10-31 20:43:02 +01:00
|
|
|
.endif
|
|
|
|
|
1999-08-30 00:13:01 +02:00
|
|
|
|
|
|
|
${DDIR}: ${DLIST}
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2001-01-29 15:40:26 +01:00
|
|
|
ddir=`${SED} 's:-[^-]*$$::' ${DLIST}`; \
|
2000-07-18 10:21:41 +02:00
|
|
|
${ECHO} >${DDIR}; \
|
|
|
|
for pkg in $${ddir} ; do \
|
|
|
|
if ${PKG_INFO} -b $${pkg} >/dev/null 2>&1 ; then \
|
2000-07-19 02:08:32 +02:00
|
|
|
${PKG_INFO} -b $${pkg} | ${SED} -ne \
|
|
|
|
's,\([^/]*/[^/]*\)/Makefile:.*,\1,p' | \
|
|
|
|
${HEAD} -1 >>${DDIR}; \
|
2000-07-18 10:21:41 +02:00
|
|
|
fi ; \
|
|
|
|
done
|
1999-08-30 00:13:01 +02:00
|
|
|
|
|
|
|
${DLIST}:
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} -p ${WRKDIR}
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2001-04-03 14:06:31 +02:00
|
|
|
{ ${PKG_INFO} -R "${PKGWILDCARD}" || ${TRUE}; } | \
|
1999-08-30 00:13:01 +02:00
|
|
|
${TAIL} -n +4 >${DLIST}
|
|
|
|
|
2000-07-30 10:52:41 +02:00
|
|
|
# The 'info' target can be used to display information about a package.
|
|
|
|
info: uptodate-pkgtools
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${PKG_INFO} ${PKGWILDCARD}
|
|
|
|
|
2000-11-12 16:20:06 +01:00
|
|
|
# The 'check' target can be used to check an installed package.
|
|
|
|
check: uptodate-pkgtools
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${PKG_ADMIN} check ${PKGWILDCARD}
|
|
|
|
|
2000-12-30 12:19:04 +01:00
|
|
|
# Run pkglint:
|
|
|
|
lint:
|
2001-07-10 13:51:57 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${LOCALBASE}/bin/pkglint
|
|
|
|
|
|
|
|
# Create a binary package from an install package using "pkg_tarup"
|
|
|
|
tarup:
|
2001-07-10 14:04:43 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2001-07-10 13:51:57 +02:00
|
|
|
${RM} -f ${PACKAGES}/All/${PKGNAME}${PKG_SUFX}; \
|
|
|
|
PKG_DBDIR=${PKG_DBDIR} PKG_SUFX=${PKG_SUFX:S/.//} \
|
|
|
|
PKGREPOSITORY=${PACKAGES}/All \
|
|
|
|
${LOCALBASE}/bin/pkg_tarup ${PKGNAME}; \
|
|
|
|
for CATEGORY in ${CATEGORIES}; do \
|
2001-07-10 14:04:43 +02:00
|
|
|
${MKDIR} ${PACKAGES}/$$CATEGORY; \
|
2001-07-10 13:51:57 +02:00
|
|
|
cd ${PACKAGES}/$$CATEGORY; \
|
|
|
|
${RM} -f ${PKGNAME}${PKG_SUFX}; \
|
|
|
|
${LN} -s ../All/${PKGNAME}${PKG_SUFX}; \
|
|
|
|
done
|
2000-12-30 12:19:04 +01:00
|
|
|
|
1999-04-09 04:06:53 +02:00
|
|
|
# This is for the use of sites which store distfiles which others may
|
|
|
|
# fetch - only fetch the distfile if it is allowed to be
|
|
|
|
# re-distributed freely
|
|
|
|
mirror-distfiles:
|
2000-08-19 17:32:15 +02:00
|
|
|
.if !defined(NO_SRC_ON_FTP)
|
2000-08-19 00:43:19 +02:00
|
|
|
@${_PKG_SILENT}${_PKG_DEBUG}${MAKE} ${MAKEFLAGS} fetch NO_IGNORE=yes NO_CHECK_DEPENDS=yes
|
1999-04-09 04:06:53 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
# Cleaning up
|
|
|
|
|
|
|
|
.if !target(pre-clean)
|
|
|
|
pre-clean:
|
|
|
|
@${DO_NADA}
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if !target(clean)
|
|
|
|
clean: pre-clean
|
2001-07-19 00:43:32 +02:00
|
|
|
. if (${CLEANDEPENDS} != "NO") && (defined(BUILD_DEPENDS) || defined(DEPENDS))
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${MAKE} ${MAKEFLAGS} clean-depends
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
2000-03-13 15:19:15 +01:00
|
|
|
@${ECHO_MSG} "${_PKGSRC_IN}> Cleaning for ${PKGNAME}"
|
2000-06-03 21:20:55 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
if [ -d ${WRKDIR} ]; then \
|
1999-03-08 18:26:54 +01:00
|
|
|
if [ -w ${WRKDIR} ]; then \
|
|
|
|
${RM} -rf ${WRKDIR}; \
|
|
|
|
else \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> ${WRKDIR} not writable, skipping"; \
|
1999-03-08 18:26:54 +01:00
|
|
|
fi; \
|
1997-08-20 12:21:05 +02:00
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. ifdef WRKOBJDIR
|
2000-06-03 21:20:55 +02:00
|
|
|
-${_PKG_SILENT}${_PKG_DEBUG} \
|
2000-06-03 23:51:57 +02:00
|
|
|
${RMDIR} ${BUILD_DIR} 2>/dev/null; \
|
2000-06-03 21:20:55 +02:00
|
|
|
${RM} -f ${WRKDIR_BASENAME}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
2000-05-31 18:59:44 +02:00
|
|
|
|
|
|
|
.if !target(clean-depends)
|
|
|
|
clean-depends:
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(BUILD_DEPENDS) || defined(DEPENDS)
|
2000-06-03 23:51:57 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2001-06-12 15:17:01 +02:00
|
|
|
for i in `${MAKE} ${MAKEFLAGS} CLEAN_DEPENDS_LIST_TOP=YES clean-depends-list | ${SED} -e 's;\.\./[^ ]*; ;g' | ${TR} -s "[:space:]" "\n" | ${SORT} -u` ;\
|
2000-06-28 18:05:44 +02:00
|
|
|
do \
|
|
|
|
cd ${.CURDIR}/../../$$i && \
|
|
|
|
${MAKE} ${MAKEFLAGS} CLEANDEPENDS=NO clean; \
|
2000-05-31 18:59:44 +02:00
|
|
|
done
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
2000-06-28 19:35:53 +02:00
|
|
|
.endif
|
2000-05-31 18:59:44 +02:00
|
|
|
|
|
|
|
|
2000-06-28 18:05:44 +02:00
|
|
|
# The clean-depends-list target will produce a list of all
|
2000-08-01 04:16:58 +02:00
|
|
|
# BUILD_DEPENDS and DEPENDS packages.
|
2000-06-28 18:05:44 +02:00
|
|
|
# As each *DEPENDS package is visited, it is added to the
|
|
|
|
# CLEAN_DEPENDS_LIST_SEEN variable. Once a pkg is in the list
|
|
|
|
# it will not be visited again. This prevents traversing the same
|
|
|
|
# part of the dependency tree multiple times. Each depending package
|
|
|
|
# ends up in the list twice. Once as the relative path from the depending
|
|
|
|
# package and once as the path from pkgsrc. Eg, "../../foo/bar foo/bar"
|
|
|
|
# The "../../foo/bar" version is later removed from the list in the
|
|
|
|
# clean-depends target. The remaining bit of redundancy is that some
|
|
|
|
# packages list their depends as "../bar" instead of "../../foo/bar"
|
|
|
|
# In this case its possible for a dependency to be visited twice.
|
|
|
|
|
|
|
|
.if !target(clean-depends-list)
|
|
|
|
clean-depends-list:
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(BUILD_DEPENDS) || defined(DEPENDS)
|
2000-06-28 18:05:44 +02:00
|
|
|
@for dir in `${ECHO} ${BUILD_DEPENDS:C/^[^:]*://:C/:.*//} \
|
2000-08-01 04:16:58 +02:00
|
|
|
${DEPENDS:C/^[^:]*://:C/:.*//} | \
|
2000-06-28 18:05:44 +02:00
|
|
|
${TR} '\040' '\012' `; do \
|
2000-06-28 19:35:53 +02:00
|
|
|
case "$$CLEAN_DEPENDS_LIST_SEEN" in \
|
2000-06-28 18:05:44 +02:00
|
|
|
*" "$$dir" "*) ;; \
|
|
|
|
*) \
|
2000-10-26 18:09:54 +02:00
|
|
|
CLEAN_DEPENDS_LIST_SEEN=" $$dir `cd ${.CURDIR} ; cd $$dir && ${MAKE} ${MAKEFLAGS} CLEAN_DEPENDS_LIST_SEEN="$$CLEAN_DEPENDS_LIST_SEEN" CLEAN_DEPENDS_LIST_TOP=NO clean-depends-list`";\
|
2000-06-28 18:05:44 +02:00
|
|
|
;; \
|
|
|
|
esac \
|
|
|
|
done ; \
|
2000-06-28 18:39:23 +02:00
|
|
|
if [ "${CLEAN_DEPENDS_LIST_TOP}" != "YES" ]; then \
|
2001-06-12 14:49:55 +02:00
|
|
|
${ECHO} " ${PKGPATH} $$CLEAN_DEPENDS_LIST_SEEN"; \
|
2000-06-28 18:39:23 +02:00
|
|
|
else \
|
2001-06-12 14:49:55 +02:00
|
|
|
${ECHO} " $$CLEAN_DEPENDS_LIST_SEEN"; \
|
2000-06-28 18:39:23 +02:00
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2000-06-28 19:35:53 +02:00
|
|
|
@if [ "${CLEAN_DEPENDS_LIST_TOP}" != "YES" ]; then \
|
2001-06-12 14:49:55 +02:00
|
|
|
${ECHO} " ${PKGPATH} $$CLEAN_DEPENDS_LIST_SEEN"; \
|
2000-06-28 19:35:53 +02:00
|
|
|
else \
|
2001-06-12 14:49:55 +02:00
|
|
|
${ECHO} " $$CLEAN_DEPENDS_LIST_SEEN"; \
|
2000-06-28 19:35:53 +02:00
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
2000-06-28 18:05:44 +02:00
|
|
|
.endif
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
.if !target(pre-distclean)
|
|
|
|
pre-distclean:
|
|
|
|
@${DO_NADA}
|
|
|
|
.endif
|
|
|
|
|
2000-05-31 18:59:44 +02:00
|
|
|
|
1998-10-04 22:56:58 +02:00
|
|
|
.if !target(cleandir)
|
|
|
|
cleandir: clean
|
|
|
|
.endif
|
|
|
|
|
2000-05-31 18:59:44 +02:00
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
.if !target(distclean)
|
|
|
|
distclean: pre-distclean clean
|
2000-03-13 15:19:15 +01:00
|
|
|
${_PKG_SILENT}${ECHO_MSG} "${_PKGSRC_IN}> Dist cleaning for ${PKGNAME}"
|
2000-06-03 01:30:52 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}if [ -d ${_DISTDIR} ]; then \
|
1999-03-08 18:26:54 +01:00
|
|
|
cd ${_DISTDIR} && \
|
|
|
|
${TEST} -z "${DISTFILES}" || ${RM} -f ${DISTFILES}; \
|
|
|
|
${TEST} -z "${PATCHFILES}" || ${RM} -f ${PATCHFILES}; \
|
2000-06-03 01:30:52 +02:00
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(DIST_SUBDIR) && exists(DIST_SUBDIR)
|
1999-03-08 18:26:54 +01:00
|
|
|
-${_PKG_SILENT}${_PKG_DEBUG}${RMDIR} ${_DISTDIR}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1999-09-08 16:58:34 +02:00
|
|
|
-${_PKG_SILENT}${_PKG_DEBUG}${RM} -f README.html
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# Prints out a list of files to fetch (useful to do a batch fetch)
|
|
|
|
|
1998-05-14 13:53:30 +02:00
|
|
|
# are we called from bsd.pkg.subdir.mk (i.e. do we scan all dirs anyway)? XXX
|
|
|
|
.ifdef(_THISDIR_)
|
1998-02-20 22:31:20 +01:00
|
|
|
RECURSIVE_FETCH_LIST?= NO
|
|
|
|
.else
|
|
|
|
RECURSIVE_FETCH_LIST?= YES
|
|
|
|
.endif
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
.if !target(fetch-list)
|
|
|
|
fetch-list:
|
2001-06-12 15:17:01 +02:00
|
|
|
@${MAKE} ${MAKEFLAGS} fetch-list-recursive RECURSIVE_FETCH_LIST=${RECURSIVE_FETCH_LIST} | ${SORT} -u
|
1998-02-20 22:31:20 +01:00
|
|
|
.endif # !target(fetch-list)
|
|
|
|
|
|
|
|
.if !target(fetch-list-recursive)
|
|
|
|
fetch-list-recursive:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
@${MAKE} ${MAKEFLAGS} fetch-list-one-pkg
|
2001-07-19 00:43:32 +02:00
|
|
|
. if ${RECURSIVE_FETCH_LIST} != "NO"
|
2000-06-03 23:51:57 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
for dir in `${ECHO} ${BUILD_DEPENDS:C/^[^:]*://:C/:.*//} \
|
2000-08-01 04:16:58 +02:00
|
|
|
${DEPENDS:C/^[^:]*://:C/:.*//} | \
|
2001-06-12 15:17:01 +02:00
|
|
|
${TR} '\040' '\012' | ${SORT} -u` ; do \
|
2000-06-03 23:51:57 +02:00
|
|
|
cd ${.CURDIR}/$$dir && \
|
|
|
|
${MAKE} ${MAKEFLAGS} fetch-list-recursive; \
|
1998-02-20 22:31:20 +01:00
|
|
|
done
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # ${RECURSIVE_FETCH_LIST} != "NO"
|
1998-02-20 22:31:20 +01:00
|
|
|
.endif # !target(fetch-list-recursive)
|
|
|
|
|
|
|
|
.if !target(fetch-list-one-pkg)
|
|
|
|
fetch-list-one-pkg:
|
1998-02-28 17:02:21 +01:00
|
|
|
@${MKDIR} ${_DISTDIR}
|
|
|
|
@[ -z "${_DISTDIR}" ] || ${ECHO} "${MKDIR} ${_DISTDIR}"
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(DISTFILES)
|
1999-03-08 18:26:54 +01:00
|
|
|
@(cd ${_DISTDIR}; \
|
|
|
|
for file in "" ${DISTFILES}; do \
|
|
|
|
if [ "X$$file" = X"" ]; then continue; fi; \
|
2000-06-03 23:51:57 +02:00
|
|
|
bfile=`${BASENAME} $$file`; \
|
|
|
|
if [ ! -f $$file -a ! -f $$bfile ]; then \
|
|
|
|
${ECHO} -n "cd ${_DISTDIR} && [ -f $$file -o -f $$bfile ] || "; \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
for site in "" `${SORTED_MASTER_SITES_CMD}`; do \
|
1999-03-08 18:26:54 +01:00
|
|
|
if [ "X$$site" = X"" ]; then continue; fi; \
|
2000-06-03 23:51:57 +02:00
|
|
|
${ECHO} -n ${FETCH_CMD} ${FETCH_BEFORE_ARGS} $${site}$${file} "${FETCH_AFTER_ARGS}" '|| '; \
|
1999-03-08 18:26:54 +01:00
|
|
|
done; \
|
|
|
|
${ECHO} "${ECHO} $${file} not fetched"; \
|
|
|
|
fi \
|
1998-02-28 17:02:21 +01:00
|
|
|
done)
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # DISTFILES
|
|
|
|
. if defined(PATCHFILES)
|
1999-03-08 18:26:54 +01:00
|
|
|
@(cd ${_DISTDIR}; \
|
|
|
|
for file in "" ${PATCHFILES}; do \
|
|
|
|
if [ "X$$file" = X"" ]; then continue; fi; \
|
2000-06-03 23:51:57 +02:00
|
|
|
bfile=`${BASENAME} $$file`; \
|
|
|
|
if [ ! -f $$file -a ! -f $$bfile ]; then \
|
|
|
|
${ECHO} -n "cd ${_DISTDIR} && [ -f $$file -o -f $$bfile ] || "; \
|
2001-10-25 20:12:53 +02:00
|
|
|
for site in `${SORTED_PATCH_SITES_CMD}`; do \
|
2000-06-03 23:51:57 +02:00
|
|
|
${ECHO} -n ${FETCH_CMD} ${FETCH_BEFORE_ARGS} $${site}$${file} "${FETCH_AFTER_ARGS}" '|| '; \
|
1999-03-08 18:26:54 +01:00
|
|
|
done; \
|
|
|
|
${ECHO} "${ECHO} $${file} not fetched"; \
|
|
|
|
fi \
|
1998-02-20 22:31:20 +01:00
|
|
|
done)
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # defined(PATCHFILES)
|
1998-02-20 22:31:20 +01:00
|
|
|
.endif # !target(fetch-list-one-pkg)
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
# Checksumming utilities
|
|
|
|
|
|
|
|
.if !target(makesum)
|
2001-03-06 15:50:45 +01:00
|
|
|
makesum: fetch uptodate-digest
|
2001-04-17 11:07:01 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
newfile=${DISTINFO_FILE}.$$$$; \
|
2001-04-21 14:40:58 +02:00
|
|
|
if [ -f ${DISTINFO_FILE} ]; then \
|
|
|
|
${AWK} -- '{print ; exit}' ${DISTINFO_FILE} > $$newfile; \
|
|
|
|
else \
|
|
|
|
${ECHO} -n "$$" > $$newfile; \
|
2001-04-17 11:07:01 +02:00
|
|
|
${ECHO} -n "NetBSD" >> $$newfile; \
|
|
|
|
${ECHO} "$$" >> $$newfile; \
|
2001-04-21 14:40:58 +02:00
|
|
|
fi; \
|
|
|
|
${ECHO} "" >> $$newfile; \
|
2001-04-17 11:07:01 +02:00
|
|
|
cd ${DISTDIR}; \
|
1999-03-08 18:26:54 +01:00
|
|
|
for sumfile in "" ${_CKSUMFILES}; do \
|
2000-05-11 10:14:35 +02:00
|
|
|
if [ "X$$sumfile" = "X" ]; then continue; fi; \
|
2001-04-17 11:07:01 +02:00
|
|
|
${DIGEST} ${DIGEST_ALGORITHM} $$sumfile >> $$newfile; \
|
2001-06-12 15:17:01 +02:00
|
|
|
${WC} -c $$sumfile | ${AWK} '{ print "Size (" $$2 ") = " $$1 " bytes" }' >> $$newfile; \
|
2001-04-17 11:07:01 +02:00
|
|
|
done; \
|
1999-03-08 18:26:54 +01:00
|
|
|
for ignore in "" ${_IGNOREFILES}; do \
|
2000-05-11 10:14:35 +02:00
|
|
|
if [ "X$$ignore" = "X" ]; then continue; fi; \
|
2001-04-17 11:07:01 +02:00
|
|
|
${ECHO} "${DIGEST_ALGORITHM} ($$ignore) = IGNORE" >> $$newfile; \
|
|
|
|
done; \
|
2001-06-09 14:15:59 +02:00
|
|
|
if [ -f ${DISTINFO_FILE} ]; then \
|
|
|
|
${AWK} '$$2 ~ /\(patch-[a-z0-9]+\)/ { print $$0 }' < ${DISTINFO_FILE} >> $$newfile; \
|
2001-04-17 11:07:01 +02:00
|
|
|
fi; \
|
2001-07-13 08:16:02 +02:00
|
|
|
if ${CMP} -s $$newfile ${DISTINFO_FILE}; then \
|
2001-04-21 14:40:58 +02:00
|
|
|
${RM} -f $$newfile; \
|
2001-04-23 22:53:50 +02:00
|
|
|
${ECHO_MSG} "=> distinfo: distfiles part unchanged."; \
|
2001-04-21 14:40:58 +02:00
|
|
|
else \
|
|
|
|
${MV} $$newfile ${DISTINFO_FILE}; \
|
|
|
|
fi
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
1999-07-09 15:14:21 +02:00
|
|
|
.if !target(makepatchsum)
|
2001-03-06 15:50:45 +01:00
|
|
|
makepatchsum mps: uptodate-digest
|
1999-10-14 07:31:22 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2001-04-17 11:07:01 +02:00
|
|
|
newfile=${DISTINFO_FILE}.$$$$; \
|
2001-06-09 14:15:59 +02:00
|
|
|
if [ -f ${DISTINFO_FILE} ]; then \
|
|
|
|
${AWK} '$$2 !~ /\(patch-[a-z0-9]+\)/ { print $$0 }' < ${DISTINFO_FILE} >> $$newfile; \
|
2001-06-09 14:56:21 +02:00
|
|
|
else \
|
|
|
|
${ECHO} -n "$$" > $$newfile; \
|
|
|
|
${ECHO} -n "NetBSD" >> $$newfile; \
|
|
|
|
${ECHO} "$$" >> $$newfile; \
|
1999-10-14 07:31:22 +02:00
|
|
|
fi; \
|
1999-07-09 15:14:21 +02:00
|
|
|
if [ -d ${PATCHDIR} ]; then \
|
2001-04-17 11:07:01 +02:00
|
|
|
(cd ${PATCHDIR}; \
|
1999-07-09 15:14:21 +02:00
|
|
|
for sumfile in "" patch-*; do \
|
1999-10-14 07:31:22 +02:00
|
|
|
if [ "X$$sumfile" = "X" ]; then continue; fi; \
|
|
|
|
if [ "X$$sumfile" = "Xpatch-*" ]; then break; fi; \
|
1999-07-09 15:14:21 +02:00
|
|
|
case $$sumfile in \
|
1999-10-14 07:31:22 +02:00
|
|
|
patch-local-*) ;; \
|
2001-04-21 14:56:56 +02:00
|
|
|
*.orig|*.rej|*~) continue ;; \
|
2001-04-17 11:07:01 +02:00
|
|
|
*) ${ECHO} "${DIGEST_ALGORITHM} ($$sumfile) = `${SED} -e '/\$$NetBSD.*/d' $$sumfile | ${DIGEST} ${DIGEST_ALGORITHM}`" >> $$newfile;; \
|
1999-07-09 15:14:21 +02:00
|
|
|
esac; \
|
2001-04-17 11:07:01 +02:00
|
|
|
done); \
|
1999-10-14 07:31:22 +02:00
|
|
|
fi; \
|
2001-07-13 08:16:02 +02:00
|
|
|
if ${CMP} -s $$newfile ${DISTINFO_FILE}; then \
|
2001-04-21 14:40:58 +02:00
|
|
|
${RM} -f $$newfile; \
|
2001-04-23 22:53:50 +02:00
|
|
|
${ECHO_MSG} "=> distinfo: patches part unchanged."; \
|
2001-04-21 14:40:58 +02:00
|
|
|
else \
|
|
|
|
${MV} $$newfile ${DISTINFO_FILE}; \
|
|
|
|
fi
|
2001-04-17 11:07:01 +02:00
|
|
|
.endif
|
|
|
|
|
2001-06-09 14:15:59 +02:00
|
|
|
# This target is done by invoking a sub-make so that DISTINFO_FILE gets
|
2001-04-17 11:07:01 +02:00
|
|
|
# re-evaluated after the "makepatchsum" target is made. This can be
|
|
|
|
# made into:
|
|
|
|
#makedistinfo mdi: makepatchsum makesum
|
|
|
|
# once a combined distinfo file exists for all packages
|
|
|
|
.if !target(makedistinfo)
|
|
|
|
makedistinfo mdi distinfo: makepatchsum
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${MAKE} makesum
|
1999-07-09 15:14:21 +02:00
|
|
|
.endif
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
.if !target(checksum)
|
2001-03-06 15:50:45 +01:00
|
|
|
checksum: fetch uptodate-digest
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2001-06-09 14:15:59 +02:00
|
|
|
if [ ! -f ${DISTINFO_FILE} ]; then \
|
2001-03-06 15:50:45 +01:00
|
|
|
${ECHO_MSG} "=> No checksum file."; \
|
1999-03-08 18:26:54 +01:00
|
|
|
else \
|
|
|
|
(cd ${DISTDIR}; OK="true"; \
|
|
|
|
for file in "" ${_CKSUMFILES}; do \
|
|
|
|
if [ "X$$file" = X"" ]; then continue; fi; \
|
2001-06-09 14:15:59 +02:00
|
|
|
alg=`${AWK} 'NF == 4 && $$2 == "('$$file')" && $$3 == "=" {print $$1;}' ${DISTINFO_FILE}`; \
|
2001-03-07 15:57:49 +01:00
|
|
|
if [ "X$$alg" = "X" ]; then \
|
2000-03-10 17:07:37 +01:00
|
|
|
${ECHO_MSG} "=> No checksum recorded for $$file."; \
|
1999-03-08 18:26:54 +01:00
|
|
|
OK="false"; \
|
|
|
|
else \
|
2001-03-07 15:57:49 +01:00
|
|
|
CKSUM=`${DIGEST} $$alg < $$file`; \
|
2001-06-09 14:15:59 +02:00
|
|
|
CKSUM2=`${AWK} '$$1 == "'$$alg'" && $$2 == "('$$file')"{print $$4;}' ${DISTINFO_FILE}`; \
|
2001-03-07 15:57:49 +01:00
|
|
|
if [ "$$CKSUM2" = "IGNORE" ]; then \
|
|
|
|
${ECHO_MSG} "=> Checksum for $$file is set to IGNORE in checksum file even though"; \
|
|
|
|
${ECHO_MSG} " the file is not in the "'$$'"{IGNOREFILES} list."; \
|
|
|
|
OK="false"; \
|
|
|
|
elif [ "$$CKSUM" = "$$CKSUM2" ]; then \
|
|
|
|
${ECHO_MSG} "=> Checksum OK for $$file."; \
|
|
|
|
else \
|
|
|
|
${ECHO_MSG} "=> Checksum mismatch for $$file."; \
|
|
|
|
OK="false"; \
|
|
|
|
fi; \
|
1999-03-08 18:26:54 +01:00
|
|
|
fi; \
|
|
|
|
done; \
|
|
|
|
for file in "" ${_IGNOREFILES}; do \
|
|
|
|
if [ "X$$file" = X"" ]; then continue; fi; \
|
2001-06-09 14:15:59 +02:00
|
|
|
CKSUM2=`${AWK} 'NF == 4 && $$3 == "=" && $$2 == "('$$file')"{print $$4;}' ${DISTINFO_FILE}`; \
|
1999-03-08 18:26:54 +01:00
|
|
|
if [ "$$CKSUM2" = "" ]; then \
|
2000-03-10 17:07:37 +01:00
|
|
|
${ECHO_MSG} "=> No checksum recorded for $$file, file is in "'$$'"{IGNOREFILES} list."; \
|
1999-03-08 18:26:54 +01:00
|
|
|
OK="false"; \
|
|
|
|
elif [ "$$CKSUM2" != "IGNORE" ]; then \
|
2001-03-06 15:50:45 +01:00
|
|
|
${ECHO_MSG} "=> Checksum for $$file is not set to IGNORE in checksum file even though"; \
|
1997-08-20 12:21:05 +02:00
|
|
|
${ECHO_MSG} " the file is in the "'$$'"{IGNOREFILES} list."; \
|
1999-03-08 18:26:54 +01:00
|
|
|
OK="false"; \
|
|
|
|
fi; \
|
|
|
|
done; \
|
|
|
|
if [ "$$OK" != "true" ]; then \
|
2001-06-09 14:15:59 +02:00
|
|
|
${ECHO_MSG} "Make sure the Makefile and checksum file (${DISTINFO_FILE})"; \
|
1997-08-20 12:21:05 +02:00
|
|
|
${ECHO_MSG} "are up to date. If you want to override this check, type"; \
|
1998-04-19 14:48:07 +02:00
|
|
|
${ECHO_MSG} "\"${MAKE} NO_CHECKSUM=yes [other args]\"."; \
|
1999-03-08 18:26:54 +01:00
|
|
|
exit 1; \
|
|
|
|
fi) ; \
|
1997-08-20 12:21:05 +02:00
|
|
|
fi
|
|
|
|
.endif
|
|
|
|
|
2000-07-06 18:45:21 +02:00
|
|
|
|
2001-05-20 03:58:19 +02:00
|
|
|
|
|
|
|
# List of sites carrying binary pkgs. Variables "rel" and "arch" are
|
|
|
|
# replaced with OS release ("1.5", ...) and architecture ("mipsel", ...)
|
|
|
|
BINPKG_SITE?= \
|
|
|
|
ftp://ftp.netbsd.org/pub/NetBSD/packages/$${rel}/$${arch}
|
|
|
|
|
|
|
|
# List of flags to pass to pkg_add(8) for bin-install:
|
|
|
|
BIN_INSTALL_FLAGS?= # -v
|
|
|
|
|
2000-07-06 18:45:21 +02:00
|
|
|
# Install binary pkg, without strict uptodate-check first
|
|
|
|
bin-install:
|
2001-05-20 03:58:19 +02:00
|
|
|
@found="`${PKG_INFO} -e \"${PKGWILDCARD}\" || ${TRUE}`"; \
|
|
|
|
if [ "$$found" != "" ]; then \
|
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> $$found is already installed - perhaps an older version?"; \
|
|
|
|
${ECHO_MSG} "*** If so, you may wish to \`\`pkg_delete $$found'' and install"; \
|
|
|
|
${ECHO_MSG} "*** this package again by \`\`${MAKE} bin-install'' to upgrade it properly."; \
|
|
|
|
${SHCOMMENT} ${ECHO_MSG} "*** or use \`\`${MAKE} bin-update'' to upgrade it and all of its dependencies."; \
|
|
|
|
exit 1; \
|
|
|
|
fi
|
2000-07-06 18:45:21 +02:00
|
|
|
@if [ -f ${PKGFILE} ] ; then \
|
|
|
|
${ECHO_MSG} "Installing from binary pkg ${PKGFILE}" ; \
|
|
|
|
${PKG_ADD} ${PKGFILE} ; \
|
|
|
|
else \
|
2001-06-12 14:49:55 +02:00
|
|
|
rel=`${UNAME} -r | ${SED} 's@\.\([0-9]*\)[\._].*@\.\1@'`; \
|
2001-05-20 03:58:19 +02:00
|
|
|
arch=`sysctl -n hw.machine_arch`; \
|
|
|
|
for site in ${BINPKG_SITE} ; do \
|
2001-06-12 14:49:55 +02:00
|
|
|
${ECHO} Trying `eval ${ECHO} $$site`/All ; \
|
|
|
|
${SHCOMMENT} ${ECHO} ${SETENV} PKG_PATH="`eval ${ECHO} $$site`/All" ${PKG_ADD} ${BIN_INSTALL_FLAGS} ${PKGNAME}${PKG_SUFX} ; \
|
|
|
|
if ${SETENV} PKG_PATH="`eval ${ECHO} $$site`/All" ${PKG_ADD} ${BIN_INSTALL_FLAGS} ${PKGNAME}${PKG_SUFX} ; then \
|
2001-05-20 03:58:19 +02:00
|
|
|
${ECHO} "${PKGNAME} successfully installed." ; \
|
|
|
|
break ; \
|
|
|
|
fi ; \
|
|
|
|
done ; \
|
|
|
|
if ! ${PKG_INFO} -qe ${PKGNAME} ; then \
|
|
|
|
${SHCOMMENT} Cycle through some FTP server here ;\
|
|
|
|
${ECHO_MSG} "Installing from source" ; \
|
|
|
|
${MAKE} ${MAKEFLAGS} package && \
|
|
|
|
${MAKE} ${MAKEFLAGS} clean ; \
|
|
|
|
fi ; \
|
2000-07-06 18:45:21 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
################################################################
|
|
|
|
# The special package-building targets
|
|
|
|
# You probably won't need to touch these
|
|
|
|
################################################################
|
|
|
|
|
2001-01-21 23:41:03 +01:00
|
|
|
# Set to "html" by the README.html target to generate HTML code,
|
|
|
|
# or to "svr4" to print SVR4 (Solaris, ...) short package names, from
|
|
|
|
# SVR4_PKGNAME variable.
|
|
|
|
# This variable is passed down via build-depends-list and run-depends-list
|
1998-08-27 16:56:02 +02:00
|
|
|
PACKAGE_NAME_TYPE?= name
|
1998-02-20 23:06:18 +01:00
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
# Nobody should want to override this unless PKGNAME is simply bogus.
|
|
|
|
|
|
|
|
.if !target(package-name)
|
|
|
|
package-name:
|
2001-07-19 00:43:32 +02:00
|
|
|
. if (${PACKAGE_NAME_TYPE} == "html")
|
2000-06-04 00:59:04 +02:00
|
|
|
@${ECHO} '<a href="../../${PKGPATH:S/&/\&/g:S/>/\>/g:S/</\</g}/README.html">${PKGNAME:S/&/\&/g:S/>/\>/g:S/</\</g}</A>'
|
2001-07-19 00:43:32 +02:00
|
|
|
. elif (${PACKAGE_NAME_TYPE} == "svr4")
|
2001-01-21 23:41:03 +01:00
|
|
|
@${ECHO} ${SVR4_PKGNAME}
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
2000-06-03 15:36:13 +02:00
|
|
|
@${ECHO} ${PKGNAME}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # PACKAGE_NAME_TYPE
|
1998-02-20 23:06:18 +01:00
|
|
|
.endif # !target(package-name)
|
|
|
|
|
2001-02-16 14:06:17 +01:00
|
|
|
.if !target(make-readme-html-help)
|
|
|
|
make-readme-html-help:
|
2001-02-21 16:01:29 +01:00
|
|
|
@${ECHO} '${PKGNAME:S/&/\&/g:S/>/\>/g:S/</\</g}</a>: <TD>'${COMMENT:S/&/\&/g:S/>/\>/g:S/</\</g:Q}
|
2001-02-16 14:06:17 +01:00
|
|
|
.endif # !target(make-readme-html-help)
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
# Show (recursively) all the packages this package depends on.
|
Change print-depends to look into /var/db/pkg, instead of pkgsrc
(implements $PACKAGE_DEPENDS_QUICK)
--
Thomas Klausner hinted me at some interresting problem WRT the
print-depends package. If something depends on suse_linus-6.*, that
package will register whatever suse_linux there is right now on the system
(in his case V6.1). What print-depends then does is also dig out any pkgs
required for suse_linux, based on what's in pkgsrc, which is of course
_wrong_, as this most likely doesn't match the installed version.[*] The
right thing instead is to print whatever the (currently installed)
suse_linux package depends on, which can be read from "pkg_info -qf"
output, looking at the @pkgdep lines.
Of course this only works if the pkg is actually installed, so it cannot
be used for README.html generation etc., but that's bad luck.
One positive aspect of using the @pkgdep list instead of going down
recursively is that this saves some time and processes. On my P133 it's
going down from ~11s to 0.5s for the pkgsrc/x11/kde package. During a
"make package" of kde itself (not counting the depending pkgs) this will
cut down like 20s (once for the fake-pkg target, and another one for the
pkg_create args - maybe a 3rd time for pkg_create in fake-pkg, but I don't
want to check that right now).
Anyways, a general solution would be to use the "pkg_info -qf | grep
@pkgdep" in print-depends instead of recursion (only!) in the places that
we know that the depends are installed. Which is the PKG_ARGS assignment
(for pkg_create) and the fake-pkg target.
[*] Plus it may be questioned that we should not go down recursively
for pkg depends anyways, but this is used in too many subtle ways
throughout the system to change.
2000-03-09 15:05:26 +01:00
|
|
|
# If PACKAGE_DEPENDS_WITH_PATTERNS is set, print as pattern (if possible)
|
2000-02-02 17:28:55 +01:00
|
|
|
PACKAGE_DEPENDS_WITH_PATTERNS?=true
|
Change print-depends to look into /var/db/pkg, instead of pkgsrc
(implements $PACKAGE_DEPENDS_QUICK)
--
Thomas Klausner hinted me at some interresting problem WRT the
print-depends package. If something depends on suse_linus-6.*, that
package will register whatever suse_linux there is right now on the system
(in his case V6.1). What print-depends then does is also dig out any pkgs
required for suse_linux, based on what's in pkgsrc, which is of course
_wrong_, as this most likely doesn't match the installed version.[*] The
right thing instead is to print whatever the (currently installed)
suse_linux package depends on, which can be read from "pkg_info -qf"
output, looking at the @pkgdep lines.
Of course this only works if the pkg is actually installed, so it cannot
be used for README.html generation etc., but that's bad luck.
One positive aspect of using the @pkgdep list instead of going down
recursively is that this saves some time and processes. On my P133 it's
going down from ~11s to 0.5s for the pkgsrc/x11/kde package. During a
"make package" of kde itself (not counting the depending pkgs) this will
cut down like 20s (once for the fake-pkg target, and another one for the
pkg_create args - maybe a 3rd time for pkg_create in fake-pkg, but I don't
want to check that right now).
Anyways, a general solution would be to use the "pkg_info -qf | grep
@pkgdep" in print-depends instead of recursion (only!) in the places that
we know that the depends are installed. Which is the PKG_ARGS assignment
(for pkg_create) and the fake-pkg target.
[*] Plus it may be questioned that we should not go down recursively
for pkg depends anyways, but this is used in too many subtle ways
throughout the system to change.
2000-03-09 15:05:26 +01:00
|
|
|
# To be used (-> true) ONLY if the pkg in question is known to be installed
|
|
|
|
# (i.e. when calling for pkg_create args, and for fake-pkg)
|
|
|
|
# Will probably not work with PACKAGE_DEPENDS_WITH_PATTERNS=false ...
|
|
|
|
PACKAGE_DEPENDS_QUICK?=false
|
2000-08-01 04:51:34 +02:00
|
|
|
.if !target(run-depends-list)
|
|
|
|
run-depends-list:
|
2001-07-19 00:43:32 +02:00
|
|
|
. for dep in ${DEPENDS}
|
2001-05-24 15:28:36 +02:00
|
|
|
@pkg="${dep:C/:.*//}"; \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
dir="${dep:C/[^:]*://}"; \
|
2000-06-04 02:50:48 +02:00
|
|
|
cd ${.CURDIR}; \
|
2000-06-24 01:41:43 +02:00
|
|
|
if ${PACKAGE_DEPENDS_WITH_PATTERNS}; then \
|
|
|
|
${ECHO} "$$pkg"; \
|
|
|
|
else \
|
|
|
|
if cd $$dir 2>/dev/null; then \
|
2000-06-03 18:52:32 +02:00
|
|
|
${MAKE} ${MAKEFLAGS} package-name PACKAGE_NAME_TYPE=${PACKAGE_NAME_TYPE}; \
|
2000-05-31 18:59:44 +02:00
|
|
|
else \
|
2000-06-24 01:41:43 +02:00
|
|
|
${ECHO_MSG} "Warning: \"$$dir\" non-existent -- @pkgdep registration incomplete" >&2; \
|
|
|
|
fi; \
|
|
|
|
fi; \
|
|
|
|
if ${PACKAGE_DEPENDS_QUICK} ; then \
|
|
|
|
${PKG_INFO} -qf "$$pkg" | ${AWK} '/^@pkgdep/ {print $$2}'; \
|
|
|
|
else \
|
|
|
|
if cd $$dir 2>/dev/null; then \
|
2001-01-21 23:41:03 +01:00
|
|
|
${MAKE} ${MAKEFLAGS} run-depends-list PACKAGE_NAME_TYPE=${PACKAGE_NAME_TYPE} PACKAGE_DEPENDS_WITH_PATTERNS=${PACKAGE_DEPENDS_WITH_PATTERNS}; \
|
2000-06-24 01:41:43 +02:00
|
|
|
else \
|
|
|
|
${ECHO_MSG} "Warning: \"$$dir\" non-existent -- @pkgdep registration incomplete" >&2; \
|
|
|
|
fi; \
|
2000-06-03 18:52:32 +02:00
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. endfor
|
2000-08-01 04:51:34 +02:00
|
|
|
.endif # target(run-depends-list)
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
# Build a package but don't check the package cookie
|
|
|
|
|
|
|
|
.if !target(repackage)
|
|
|
|
repackage: pre-repackage package
|
|
|
|
|
|
|
|
pre-repackage:
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${RM} -f ${PACKAGE_COOKIE}
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# Build a package but don't check the cookie for installation, also don't
|
|
|
|
# install package cookie
|
|
|
|
|
|
|
|
.if !target(package-noinstall)
|
|
|
|
package-noinstall:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}cd ${.CURDIR} && ${MAKE} ${MAKEFLAGS} PACKAGE_NOINSTALL=yes real-package
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
# Dependency checking
|
|
|
|
################################################################
|
|
|
|
|
2000-08-07 01:39:23 +02:00
|
|
|
.if !target(install-depends)
|
2000-01-14 12:58:21 +01:00
|
|
|
# Tells whether to halt execution if the object formats differ
|
|
|
|
FATAL_OBJECT_FMT_SKEW?= yes
|
2000-01-17 15:49:55 +01:00
|
|
|
WARN_NO_OBJECT_FMT?= yes
|
2000-01-14 12:58:21 +01:00
|
|
|
|
2001-03-27 05:19:43 +02:00
|
|
|
install-depends: uptodate-pkgtools
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(DEPENDS) || defined(BUILD_DEPENDS)
|
|
|
|
. if defined(NO_DEPENDS)
|
2001-03-27 05:19:43 +02:00
|
|
|
@${DO_NADA}
|
2001-07-19 00:43:32 +02:00
|
|
|
. else # !DEPENDS
|
|
|
|
. for dep in ${DEPENDS} ${BUILD_DEPENDS}
|
2001-03-27 05:19:43 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2000-06-03 16:17:49 +02:00
|
|
|
pkg="${dep:C/:.*//}"; \
|
|
|
|
dir="${dep:C/[^:]*://:C/:.*$//}"; \
|
2001-05-20 02:54:09 +02:00
|
|
|
found=`${PKG_INFO} -e "$$pkg" || ${TRUE}`; \
|
2001-09-10 22:03:17 +02:00
|
|
|
if [ "X$$REBUILD_DOWNLEVEL_DEPENDS" != "X" ]; then \
|
|
|
|
pkgname=`cd $$dir ; ${MAKE} ${MAKEFLAGS} show-var VARNAME=PKGNAME`; \
|
|
|
|
if [ "X$$found" != "X" -a "X$$found" != "X$${pkgname}" ]; then \
|
|
|
|
${ECHO_MSG} "ignoring old installed package \"$$found\""; \
|
|
|
|
found=""; \
|
|
|
|
fi; \
|
|
|
|
fi; \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
if [ "$$found" != "" ]; then \
|
2000-08-21 11:41:07 +02:00
|
|
|
instobjfmt=`${PKG_INFO} -B "$$pkg" | ${AWK} '/^OBJECT_FMT/ {print $$2}' | ${HEAD} -1`; \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
if [ "$$instobjfmt" = "" ]; then \
|
2000-01-17 15:49:55 +01:00
|
|
|
if [ "X${WARN_NO_OBJECT_FMT}" != "Xno" ]; then \
|
2000-06-03 16:17:49 +02:00
|
|
|
${ECHO} "WARNING: Unknown object format for installed package $$pkg - continuing"; \
|
2000-01-17 15:49:55 +01:00
|
|
|
fi; \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
elif [ "$$instobjfmt" != "${OBJECT_FMT}" ]; then \
|
2000-06-03 16:17:49 +02:00
|
|
|
${ECHO} "Installed package $$pkg is an $$instobjfmt package."; \
|
2000-01-14 12:39:31 +01:00
|
|
|
${ECHO} "You are building an ${OBJECT_FMT} package, which will not inter-operate."; \
|
2000-06-03 16:17:49 +02:00
|
|
|
${ECHO} "Please update the $$pkg package to ${OBJECT_FMT}"; \
|
2000-08-07 12:23:38 +02:00
|
|
|
if [ "X${FATAL_OBJECT_FMT_SKEW}" != "Xno" ]; then \
|
2000-01-14 12:58:21 +01:00
|
|
|
exit 1; \
|
|
|
|
fi; \
|
2000-01-14 12:39:31 +01:00
|
|
|
fi; \
|
2001-06-12 15:17:01 +02:00
|
|
|
if [ `${ECHO} $$found | ${WC} -w` -gt 1 ]; then \
|
2000-06-03 16:17:49 +02:00
|
|
|
${ECHO} '***' "WARNING: Dependency on '$$pkg' expands to several installed packages " ; \
|
2000-01-10 20:43:37 +01:00
|
|
|
${ECHO} " (" `${ECHO} $$found` ")." ; \
|
|
|
|
${ECHO} " Please check if this is really intended!" ; \
|
|
|
|
else \
|
2000-11-16 06:36:01 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Required installed package $$pkg: $${found} found"; \
|
2000-01-10 20:43:37 +01:00
|
|
|
fi ; \
|
1998-08-25 18:26:09 +02:00
|
|
|
else \
|
2000-11-16 06:36:01 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Required package $$pkg: NOT found"; \
|
1998-08-25 18:26:09 +02:00
|
|
|
target=${DEPENDS_TARGET}; \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Verifying $$target for $$dir"; \
|
1998-08-25 18:26:09 +02:00
|
|
|
if [ ! -d $$dir ]; then \
|
2000-03-10 17:07:37 +01:00
|
|
|
${ECHO_MSG} "=> No directory for $$dir. Skipping.."; \
|
1998-04-22 16:22:39 +02:00
|
|
|
else \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
cd $$dir ; \
|
|
|
|
${MAKE} ${MAKEFLAGS} $$target _PKGSRC_DEPS=", ${PKGNAME}${_PKGSRC_DEPS}"; \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Returning to build of ${PKGNAME}"; \
|
- The comment above the _COOKIE settings says "don't change these!!", so
use = to set them, not ?=.
- _DEPENDS_USE doesn't actually do any macro expansion, so save some
processing time by executing it exactly once (remove the .USE operator).
- Merge the IGNORE targets. Add an IGNORE target for depends and
check-depends (see bottom).
- Don't check for installation of a package in ${DEPENDS} when doing
a "make depends". Instead, let the return code of make fall through
(using && instead of ; in the last clause of each depend recursion block).
- Provide a variable IGNORE_FAIL: when set, causes the ignore message
to be printed (regardless of IGNORE_SILENT or ECHO_MSG setting) and the
build to fail with ${FALSE}. Used with the next addition:
- Add a new target, "check-depends", which is called as part of "real-fetch".
This validates whether the dependencies of a pkg to be built are installed,
and if not, whether those dependencies will prospectively build (will
not set IGNORE directly or indirectly through the various disable options).
Recurses to "depends" with a DEPENDS_TARGET of "check-depends".
...And now, it is no longer necessary to mark dependent pkgs as unusable
when their dependencies are unusable thanks to an incorrect LICENSE,
_FOR_PLATFORM setting, and so forth. The check-depends step will validate
everything before fetching a single file.
1999-05-25 01:04:52 +02:00
|
|
|
fi; \
|
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. endfor # DEPENDS
|
|
|
|
. endif # !NO_DEPENDS
|
|
|
|
. endif # DEPENDS
|
1997-08-20 12:21:05 +02:00
|
|
|
|
|
|
|
.endif
|
|
|
|
|
- The comment above the _COOKIE settings says "don't change these!!", so
use = to set them, not ?=.
- _DEPENDS_USE doesn't actually do any macro expansion, so save some
processing time by executing it exactly once (remove the .USE operator).
- Merge the IGNORE targets. Add an IGNORE target for depends and
check-depends (see bottom).
- Don't check for installation of a package in ${DEPENDS} when doing
a "make depends". Instead, let the return code of make fall through
(using && instead of ; in the last clause of each depend recursion block).
- Provide a variable IGNORE_FAIL: when set, causes the ignore message
to be printed (regardless of IGNORE_SILENT or ECHO_MSG setting) and the
build to fail with ${FALSE}. Used with the next addition:
- Add a new target, "check-depends", which is called as part of "real-fetch".
This validates whether the dependencies of a pkg to be built are installed,
and if not, whether those dependencies will prospectively build (will
not set IGNORE directly or indirectly through the various disable options).
Recurses to "depends" with a DEPENDS_TARGET of "check-depends".
...And now, it is no longer necessary to mark dependent pkgs as unusable
when their dependencies are unusable thanks to an incorrect LICENSE,
_FOR_PLATFORM setting, and so forth. The check-depends step will validate
everything before fetching a single file.
1999-05-25 01:04:52 +02:00
|
|
|
real-fetch: check-depends
|
|
|
|
.if !target(check-depends)
|
|
|
|
check-depends:
|
2001-07-19 00:43:32 +02:00
|
|
|
. if (defined(DEPENDS) || defined(BUILD_DEPENDS)) && \
|
|
|
|
!defined(NO_DEPENDS) && !defined(NO_CHECK_DEPENDS) && !exists(${EXTRACT_COOKIE})
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}\
|
2000-08-01 04:16:58 +02:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Validating dependencies for ${PKGNAME}" ; \
|
2000-08-01 04:23:43 +02:00
|
|
|
${MAKE} ${MAKEFLAGS} DEPENDS_TARGET=check-depends ECHO_MSG=${TRUE:Q} IGNORE_FAIL=1 _DEPENDS_TARGET_OVERRIDE=1 install-depends || \
|
2001-04-03 14:06:31 +02:00
|
|
|
{ ${ECHO_MSG} "${_PKGSRC_IN}> ${PKGNAME} cannot build necessary dependencies."; ${FALSE}; }
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
- The comment above the _COOKIE settings says "don't change these!!", so
use = to set them, not ?=.
- _DEPENDS_USE doesn't actually do any macro expansion, so save some
processing time by executing it exactly once (remove the .USE operator).
- Merge the IGNORE targets. Add an IGNORE target for depends and
check-depends (see bottom).
- Don't check for installation of a package in ${DEPENDS} when doing
a "make depends". Instead, let the return code of make fall through
(using && instead of ; in the last clause of each depend recursion block).
- Provide a variable IGNORE_FAIL: when set, causes the ignore message
to be printed (regardless of IGNORE_SILENT or ECHO_MSG setting) and the
build to fail with ${FALSE}. Used with the next addition:
- Add a new target, "check-depends", which is called as part of "real-fetch".
This validates whether the dependencies of a pkg to be built are installed,
and if not, whether those dependencies will prospectively build (will
not set IGNORE directly or indirectly through the various disable options).
Recurses to "depends" with a DEPENDS_TARGET of "check-depends".
...And now, it is no longer necessary to mark dependent pkgs as unusable
when their dependencies are unusable thanks to an incorrect LICENSE,
_FOR_PLATFORM setting, and so forth. The check-depends step will validate
everything before fetching a single file.
1999-05-25 01:04:52 +02:00
|
|
|
.endif
|
|
|
|
|
2000-08-01 04:51:34 +02:00
|
|
|
.if !target(build-depends-list)
|
|
|
|
build-depends-list:
|
2001-07-19 00:43:32 +02:00
|
|
|
. for dir in ${BUILD_DEPENDS} ${DEPENDS}
|
2000-06-03 21:43:20 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
cd ${dir:C/^[^:]*://:C/:.*//}; \
|
2000-08-01 04:51:34 +02:00
|
|
|
${MAKE} ${MAKEFLAGS} package-name build-depends-list PACKAGE_NAME_TYPE=${PACKAGE_NAME_TYPE}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endfor
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
1998-09-23 15:09:32 +02:00
|
|
|
# If PACKAGES is set to the default (../../pkgsrc/packages), the current
|
|
|
|
# ${MACHINE_ARCH} and "release" (uname -r) will be used. Otherwise a directory
|
|
|
|
# structure of ...pkgsrc/packages/`uname -r`/${MACHINE_ARCH} is assumed.
|
|
|
|
# The PKG_URL is set from FTP_PKG_URL_* or CDROM_PKG_URL_*, depending on
|
|
|
|
# the target used to generate the README.html file.
|
1998-05-25 02:04:30 +02:00
|
|
|
.if !target(binpkg-list)
|
|
|
|
binpkg-list:
|
2001-05-03 15:01:04 +02:00
|
|
|
@if [ -e ${PACKAGES} ]; then \
|
|
|
|
cd ${PACKAGES}; \
|
|
|
|
case ${.CURDIR} in \
|
|
|
|
*/pkgsrc/packages) \
|
|
|
|
for pkg in ${PKGREPOSITORYSUBDIR}/${PKGWILDCARD}${PKG_SUFX} ; \
|
|
|
|
do \
|
|
|
|
if [ -f "$$pkg" ] ; then \
|
|
|
|
pkgname=`${ECHO} $$pkg | ${SED} 's@.*/@@'`; \
|
|
|
|
${ECHO} "<TR><TD>${MACHINE_ARCH}:<TD><a href=\"${PKG_URL}/$$pkg\">$$pkgname</a><TD>(${OPSYS} ${OS_VERSION})"; \
|
|
|
|
fi ; \
|
|
|
|
done ; \
|
|
|
|
;; \
|
|
|
|
*) \
|
|
|
|
cd ${PACKAGES}/../..; \
|
|
|
|
for i in [1-9].*/*; do \
|
|
|
|
if cd ${PACKAGES}/../../$$i/${PKGREPOSITORYSUBDIR} 2>/dev/null; then \
|
|
|
|
for j in ${PKGWILDCARD}${PKG_SUFX}; \
|
|
|
|
do \
|
|
|
|
if [ -f "$$j" ]; then \
|
|
|
|
${ECHO} $$i/$$j;\
|
|
|
|
fi; \
|
|
|
|
done; \
|
|
|
|
fi; \
|
|
|
|
done | ${AWK} -F/ ' \
|
|
|
|
{ \
|
|
|
|
release = $$1; \
|
|
|
|
arch = $$2; \
|
|
|
|
pkg = $$3; \
|
|
|
|
gsub("\.tgz","", pkg); \
|
|
|
|
if (arch != "m68k" && arch != "mipsel") { \
|
|
|
|
if (arch in urls) \
|
|
|
|
urls[arch "/" pkg "/" release] = "<a href=\"${PKG_URL}/" release "/" arch "/${PKGREPOSITORYSUBDIR}/" pkg "${PKG_SUFX}\">" pkg "</a>, " urls[arch]; \
|
|
|
|
else \
|
|
|
|
urls[arch "/" pkg "/" release] = "<a href=\"${PKG_URL}/" release "/" arch "/${PKGREPOSITORYSUBDIR}/" pkg "${PKG_SUFX}\">" pkg "</a> "; \
|
|
|
|
} \
|
|
|
|
} \
|
|
|
|
END { \
|
|
|
|
for (av in urls) { \
|
|
|
|
split(av, ava, "/"); \
|
|
|
|
arch=ava[1]; \
|
|
|
|
pkg=ava[2]; \
|
|
|
|
release=ava[3]; \
|
|
|
|
print "<TR><TD>" arch ":<TD>" urls[av] "<TD>(${OPSYS} " release ")"; \
|
|
|
|
} \
|
2001-06-12 15:17:01 +02:00
|
|
|
}' | ${SORT} \
|
2001-05-03 15:01:04 +02:00
|
|
|
;; \
|
|
|
|
esac; \
|
|
|
|
fi
|
1998-05-25 02:04:30 +02:00
|
|
|
.endif
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
################################################################
|
|
|
|
# Everything after here are internal targets and really
|
|
|
|
# shouldn't be touched by anybody but the release engineers.
|
|
|
|
################################################################
|
|
|
|
|
|
|
|
# This target generates an index entry suitable for aggregation into
|
|
|
|
# a large index. Format is:
|
|
|
|
#
|
1999-08-10 12:48:23 +02:00
|
|
|
# distribution-name|package-path|installation-prefix|comment| \
|
1998-03-08 15:25:52 +01:00
|
|
|
# description-file|maintainer|categories|build deps|run deps|for arch
|
1997-08-20 12:21:05 +02:00
|
|
|
#
|
|
|
|
.if !target(describe)
|
|
|
|
describe:
|
1999-03-08 18:26:54 +01:00
|
|
|
@${ECHO} -n "${PKGNAME}|${.CURDIR}|"; \
|
|
|
|
${ECHO} -n "${PREFIX}|"; \
|
2001-02-21 16:01:29 +01:00
|
|
|
${ECHO} -n ${COMMENT:Q}; \
|
1999-03-08 18:26:54 +01:00
|
|
|
if [ -f ${DESCR_SRC} ]; then \
|
|
|
|
${ECHO} -n "|${DESCR_SRC}"; \
|
|
|
|
else \
|
|
|
|
${ECHO} -n "|/dev/null"; \
|
|
|
|
fi; \
|
|
|
|
${ECHO} -n "|${MAINTAINER}|${CATEGORIES}|"; \
|
- The comment above the _COOKIE settings says "don't change these!!", so
use = to set them, not ?=.
- _DEPENDS_USE doesn't actually do any macro expansion, so save some
processing time by executing it exactly once (remove the .USE operator).
- Merge the IGNORE targets. Add an IGNORE target for depends and
check-depends (see bottom).
- Don't check for installation of a package in ${DEPENDS} when doing
a "make depends". Instead, let the return code of make fall through
(using && instead of ; in the last clause of each depend recursion block).
- Provide a variable IGNORE_FAIL: when set, causes the ignore message
to be printed (regardless of IGNORE_SILENT or ECHO_MSG setting) and the
build to fail with ${FALSE}. Used with the next addition:
- Add a new target, "check-depends", which is called as part of "real-fetch".
This validates whether the dependencies of a pkg to be built are installed,
and if not, whether those dependencies will prospectively build (will
not set IGNORE directly or indirectly through the various disable options).
Recurses to "depends" with a DEPENDS_TARGET of "check-depends".
...And now, it is no longer necessary to mark dependent pkgs as unusable
when their dependencies are unusable thanks to an incorrect LICENSE,
_FOR_PLATFORM setting, and so forth. The check-depends step will validate
everything before fetching a single file.
1999-05-25 01:04:52 +02:00
|
|
|
case "A${BUILD_DEPENDS}B${DEPENDS}C" in \
|
|
|
|
ABC) ;; \
|
2001-06-12 15:17:01 +02:00
|
|
|
*) cd ${.CURDIR} && ${ECHO} -n `${MAKE} ${MAKEFLAGS} build-depends-list | ${SORT} -u`;; \
|
1999-03-08 18:26:54 +01:00
|
|
|
esac; \
|
|
|
|
${ECHO} -n "|"; \
|
2000-08-01 04:16:58 +02:00
|
|
|
if [ "${DEPENDS}" != "" ]; then \
|
2001-06-12 15:17:01 +02:00
|
|
|
cd ${.CURDIR} && ${ECHO} -n `${MAKE} ${MAKEFLAGS} run-depends-list | ${SORT} -u`; \
|
2000-08-01 04:16:58 +02:00
|
|
|
fi; \
|
1999-03-08 18:26:54 +01:00
|
|
|
${ECHO} -n "|"; \
|
|
|
|
if [ "${ONLY_FOR_ARCHS}" = "" ]; then \
|
|
|
|
${ECHO} -n "any"; \
|
|
|
|
else \
|
|
|
|
${ECHO} -n "${ONLY_FOR_ARCHS}"; \
|
|
|
|
fi; \
|
|
|
|
${ECHO} -n "|"; \
|
|
|
|
if [ "${NOT_FOR_OPSYS}" = "" ]; then \
|
|
|
|
${ECHO} -n "any"; \
|
|
|
|
else \
|
|
|
|
${ECHO} -n "not ${NOT_FOR_OPSYS}"; \
|
|
|
|
fi; \
|
1997-08-20 12:21:05 +02:00
|
|
|
${ECHO} ""
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if !target(readmes)
|
|
|
|
readmes: readme
|
|
|
|
.endif
|
|
|
|
|
1998-09-23 15:09:32 +02:00
|
|
|
# This target is used to generate README.html files
|
1997-08-20 12:21:05 +02:00
|
|
|
.if !target(readme)
|
1998-09-23 15:09:32 +02:00
|
|
|
FTP_PKG_URL_HOST?= ftp://ftp.netbsd.org
|
|
|
|
FTP_PKG_URL_DIR?= /pub/NetBSD/packages
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
readme:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
@cd ${.CURDIR} && ${MAKE} ${MAKEFLAGS} README.html PKG_URL=${FTP_PKG_URL_HOST}${FTP_PKG_URL_DIR}
|
1998-09-23 15:09:32 +02:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# This target is used to generate README.html files, very like "readme"
|
|
|
|
# However, a different target was used for ease of use.
|
|
|
|
.if !target(cdrom-readme)
|
|
|
|
CDROM_PKG_URL_HOST?= file://localhost
|
|
|
|
CDROM_PKG_URL_DIR?= /usr/pkgsrc/packages
|
|
|
|
|
|
|
|
cdrom-readme:
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
@cd ${.CURDIR} && ${MAKE} ${MAKEFLAGS} README.html PKG_URL=${CDROM_PKG_URL_HOST}${CDROM_PKG_URL_DIR}
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
1999-03-08 18:26:54 +01:00
|
|
|
README_NAME= ${TEMPLATES}/README.pkg
|
1997-11-21 18:44:11 +01:00
|
|
|
|
1998-07-22 11:18:46 +02:00
|
|
|
# set up the correct license information as a sed expression
|
|
|
|
.ifdef LICENSE
|
|
|
|
SED_LICENSE_EXPR= -e 's|%%LICENSE%%|<p>Please note that this package has a ${LICENSE} license.</p>|'
|
|
|
|
.else
|
|
|
|
SED_LICENSE_EXPR= -e 's|%%LICENSE%%||'
|
|
|
|
.endif
|
|
|
|
|
1998-08-20 17:16:34 +02:00
|
|
|
# set up the "more info URL" information as a sed expression
|
|
|
|
.ifdef HOMEPAGE
|
1998-08-27 13:34:23 +02:00
|
|
|
SED_HOMEPAGE_EXPR= -e 's|%%HOMEPAGE%%|<p>This package has a home page at <a HREF="${HOMEPAGE}">${HOMEPAGE}</a>.</p>|'
|
1998-08-20 17:16:34 +02:00
|
|
|
.else
|
|
|
|
SED_HOMEPAGE_EXPR= -e 's|%%HOMEPAGE%%||'
|
|
|
|
.endif
|
|
|
|
|
2000-09-28 12:50:43 +02:00
|
|
|
show-vulnerabilities:
|
|
|
|
@if [ -f ${DISTDIR}/vulnerabilities ]; then \
|
|
|
|
${AWK} '/^${PKGBASE}/ { print $$0 }' ${DISTDIR}/vulnerabilities; \
|
|
|
|
else \
|
|
|
|
${ECHO} "No vulnerabilities list found."; \
|
|
|
|
fi
|
|
|
|
|
|
|
|
show-vulnerabilities-html:
|
|
|
|
@if [ -f ${DISTDIR}/vulnerabilities ]; then \
|
|
|
|
${AWK} '/^${PKGBASE}/ { gsub("\<", "\\<", $$1); \
|
|
|
|
gsub("\>", "\\>", $$1); \
|
|
|
|
printf("<STRONG><LI>%s has a %s exploit (see <a href=\"%s\">%s</a> for more details)</STRONG>\n", $$1, $$2, $$3, $$3) }' \
|
|
|
|
${DISTDIR}/vulnerabilities; \
|
|
|
|
fi
|
2000-09-19 21:29:11 +02:00
|
|
|
|
|
|
|
|
1999-07-14 21:34:06 +02:00
|
|
|
.PHONY: README.html
|
|
|
|
README.html: .PRECIOUS
|
2001-06-12 15:17:01 +02:00
|
|
|
@${MAKE} ${MAKEFLAGS} build-depends-list PACKAGE_NAME_TYPE=html | ${SORT} -u >> $@.tmp1
|
1998-09-23 15:09:32 +02:00
|
|
|
@[ -s $@.tmp1 ] || ${ECHO} "<I>(none)</I>" >> $@.tmp1
|
2001-06-12 15:17:01 +02:00
|
|
|
@${MAKE} ${MAKEFLAGS} run-depends-list PACKAGE_NAME_TYPE=html | ${SORT} -u >> $@.tmp2
|
1998-09-23 15:09:32 +02:00
|
|
|
@[ -s $@.tmp2 ] || ${ECHO} "<I>(none)</I>" >> $@.tmp2
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
@${MAKE} ${MAKEFLAGS} binpkg-list >> $@.tmp4
|
2000-06-01 00:16:16 +02:00
|
|
|
@[ -s $@.tmp4 ] || ${ECHO} "<TR><TD><I>(no precompiled binaries available)</I>" >> $@.tmp4
|
2000-09-19 21:29:11 +02:00
|
|
|
@${MAKE} ${MAKEFLAGS} show-vulnerabilities-html >> $@.tmp5
|
|
|
|
@[ -s $@.tmp5 ] || ${ECHO} "<I>(no vulnerabilities known)</I>" >> $@.tmp5
|
2000-09-28 12:50:43 +02:00
|
|
|
@${LS} -l ${DISTDIR}/vulnerabilities 2>&1 | ${AWK} 'NF > 7 { printf("at %s %s %s\n", $$6, $$7, $$8) }' >> $@.tmp6
|
2000-09-19 21:29:11 +02:00
|
|
|
@[ -s $@.tmp6 ] || ${ECHO} "<TR><TD><I>(no vulnerabilities list available)</I>" >> $@.tmp6
|
2000-11-10 00:46:29 +01:00
|
|
|
@${SED} -e 's|%%PORT%%|${PKGPATH}|g' \
|
|
|
|
-e 's|%%PKG%%|${PKGNAME}|' \
|
1998-09-23 15:09:32 +02:00
|
|
|
${SED_LICENSE_EXPR} \
|
|
|
|
${SED_HOMEPAGE_EXPR} \
|
2000-09-19 21:29:11 +02:00
|
|
|
-e '/%%VULNERABILITIES%%/r $@.tmp5' \
|
|
|
|
-e '/%%VULNERABILITIES%%/d' \
|
|
|
|
-e '/%%VULDATE%%/r $@.tmp6' \
|
|
|
|
-e '/%%VULDATE%%/d' \
|
2001-02-21 16:01:29 +01:00
|
|
|
-e "s/%%COMMENT%%/${COMMENT:S|/|\/|g:Q}/" \
|
1999-07-28 12:07:55 +02:00
|
|
|
-e '/%%BUILD_DEPENDS%%/r $@.tmp1' \
|
1998-09-23 15:09:32 +02:00
|
|
|
-e '/%%BUILD_DEPENDS%%/d' \
|
1999-07-28 12:07:55 +02:00
|
|
|
-e '/%%RUN_DEPENDS%%/r $@.tmp2' \
|
1998-09-23 15:09:32 +02:00
|
|
|
-e '/%%RUN_DEPENDS%%/d' \
|
1999-07-28 12:07:55 +02:00
|
|
|
-e '/%%BIN_PKGS%%/r $@.tmp4' \
|
1998-09-23 15:09:32 +02:00
|
|
|
-e '/%%BIN_PKGS%%/d' \
|
|
|
|
${README_NAME} >> $@.tmp
|
2001-07-13 08:16:02 +02:00
|
|
|
@${CMP} -s $@.tmp $@ || \
|
2001-04-03 14:06:31 +02:00
|
|
|
{ ${ECHO_MSG} "${_PKGSRC_IN}> Creating README.html for ${_THISDIR_}${PKGNAME}"; \
|
|
|
|
${MV} -f $@.tmp $@; }
|
2000-11-10 00:46:29 +01:00
|
|
|
@${RM} -f $@.tmp $@.tmp1 $@.tmp2 $@.tmp4 $@.tmp5 $@.tmp6
|
1997-08-20 12:21:05 +02:00
|
|
|
|
1999-03-08 18:26:54 +01:00
|
|
|
.if !target(show-pkgtools-version)
|
|
|
|
show-pkgtools-version:
|
2000-01-07 13:24:14 +01:00
|
|
|
@${ECHO} ${PKGTOOLS_VERSION}
|
1999-08-31 23:45:45 +02:00
|
|
|
.endif
|
1998-11-09 15:41:30 +01:00
|
|
|
|
1999-09-28 12:03:16 +02:00
|
|
|
# convenience target, to display make variables from command line
|
|
|
|
# i.e. "make show-var VARNAME=var", will print var's value
|
|
|
|
show-var:
|
2001-04-17 18:56:21 +02:00
|
|
|
@${ECHO} ${${VARNAME}:Q}
|
1999-09-28 12:03:16 +02:00
|
|
|
|
2001-10-26 23:42:44 +02:00
|
|
|
# enhanced version of target above, to display multiple variables
|
|
|
|
show-vars:
|
|
|
|
.for VARNAME in ${VARNAMES}
|
|
|
|
@${ECHO} ${${VARNAME}:Q}
|
|
|
|
.endfor
|
|
|
|
|
2000-08-01 04:51:34 +02:00
|
|
|
.if !target(print-build-depends-list)
|
|
|
|
print-build-depends-list:
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(BUILD_DEPENDS) || defined(DEPENDS)
|
1999-08-10 12:48:23 +02:00
|
|
|
@${ECHO} -n 'This package requires package(s) "'
|
2001-06-12 15:17:01 +02:00
|
|
|
@${ECHO} -n `${MAKE} ${MAKEFLAGS} build-depends-list | ${SORT} -u`
|
1997-08-20 12:21:05 +02:00
|
|
|
@${ECHO} '" to build.'
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
2000-08-01 04:51:34 +02:00
|
|
|
.if !target(print-run-depends-list)
|
|
|
|
print-run-depends-list:
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(DEPENDS)
|
1999-08-10 12:48:23 +02:00
|
|
|
@${ECHO} -n 'This package requires package(s) "'
|
2001-06-12 15:17:01 +02:00
|
|
|
@${ECHO} -n `${MAKE} ${MAKEFLAGS} run-depends-list | ${SORT} -u`
|
1997-08-20 12:21:05 +02:00
|
|
|
@${ECHO} '" to run.'
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
2001-01-05 18:37:12 +01:00
|
|
|
.if !target(show-license)
|
|
|
|
show-license show-licence:
|
|
|
|
@if [ "${LICENSE}" != "" ]; then \
|
2001-03-20 13:39:00 +01:00
|
|
|
if [ -e ${PKGSRCDIR}/licenses/${LICENSE} ]; then \
|
|
|
|
${CAT} ${PKGSRCDIR}/licenses/${LICENSE}; \
|
|
|
|
else \
|
|
|
|
${ECHO} "Generic ${LICENSE} information not available"; \
|
|
|
|
${ECHO} "See the package description (pkg_info -d ${PKGNAME}) for more information."; \
|
|
|
|
fi \
|
2001-01-05 18:37:12 +01:00
|
|
|
fi
|
|
|
|
.endif
|
1999-11-29 20:48:15 +01:00
|
|
|
|
2000-06-25 05:58:17 +02:00
|
|
|
# Stat all the files of one pkg and sum the sizes up.
|
1999-11-29 20:48:15 +01:00
|
|
|
#
|
|
|
|
# XXX This is intended to be run before pkg_create is called, so the
|
2000-09-19 21:29:11 +02:00
|
|
|
# existence of ${PLIST} can be assumed.
|
2000-06-25 05:58:17 +02:00
|
|
|
print-pkg-size-this:
|
2000-06-25 08:31:12 +02:00
|
|
|
@${SHCOMMENT} "This pkg's files" ; \
|
2000-04-15 18:13:07 +02:00
|
|
|
${AWK} 'BEGIN { base = "${PREFIX}/" } \
|
|
|
|
/^@cwd/ { base = $$2 "/" } \
|
|
|
|
/^@ignore/ { next } \
|
|
|
|
NF == 1 { print base $$1 }' \
|
2000-06-27 22:14:45 +02:00
|
|
|
<${PLIST} \
|
2001-06-12 15:17:01 +02:00
|
|
|
| ${SORT} -u \
|
2000-03-26 10:11:21 +02:00
|
|
|
| ${SED} -e 's, ,\\ ,g' \
|
2001-05-18 12:29:10 +02:00
|
|
|
| ${XARGS} ${LS} -ld \
|
2000-09-19 21:29:11 +02:00
|
|
|
| ${AWK} 'BEGIN { print("0 "); } \
|
|
|
|
{ print($$5, " + "); } \
|
2000-09-15 10:35:15 +02:00
|
|
|
END { print("p"); }' \
|
|
|
|
| ${DC}
|
1999-11-29 20:48:15 +01:00
|
|
|
|
2000-06-25 05:58:17 +02:00
|
|
|
# Sizes of required pkgs (only)
|
|
|
|
#
|
|
|
|
# XXX This is intended to be run before pkg_create is called, so the
|
2000-11-18 22:53:31 +01:00
|
|
|
# dependencies are all installed.
|
2000-06-25 05:58:17 +02:00
|
|
|
print-pkg-size-depends:
|
2000-11-18 22:53:31 +01:00
|
|
|
@${MAKE} ${MAKEFLAGS} run-depends-list PACKAGE_DEPENDS_QUICK=true \
|
2001-05-18 12:29:10 +02:00
|
|
|
| ${XARGS} -n 1 ${SETENV} ${PKG_INFO} -e \
|
2001-06-12 15:17:01 +02:00
|
|
|
| ${SORT} -u \
|
2001-05-18 12:29:10 +02:00
|
|
|
| ${XARGS} -n 256 ${SETENV} ${PKG_INFO} -qs \
|
2000-11-12 03:46:53 +01:00
|
|
|
| ${AWK} -- 'BEGIN { print("0 "); } \
|
|
|
|
/^[0-9]+$$/ { print($$1, " + "); } \
|
|
|
|
END { print("p"); }' \
|
2000-09-15 10:35:15 +02:00
|
|
|
| ${DC}
|
2000-01-10 20:17:27 +01:00
|
|
|
|
1999-11-29 20:48:15 +01:00
|
|
|
|
2000-06-16 11:18:26 +02:00
|
|
|
###
|
|
|
|
### Automatic PLIST generation
|
|
|
|
### - files & symlinks first
|
|
|
|
### - @exec/@unexec calls are added for info files
|
|
|
|
### - @dirrm statements last
|
|
|
|
### - empty directories are handled properly
|
|
|
|
### - dirs from mtree files are excluded
|
|
|
|
###
|
|
|
|
### Usage:
|
|
|
|
### - make install
|
|
|
|
### - make print-PLIST | brain >pkg/PLIST
|
|
|
|
###
|
|
|
|
|
|
|
|
# Common (system) directories not to generate @dirrm statements for
|
|
|
|
# Reads MTREE_FILE and extracts a list of sed commands that will
|
|
|
|
# sort out which directories NOT to include into the PLIST @dirrm list
|
|
|
|
.if make(print-PLIST)
|
|
|
|
COMMON_DIRS!= ${AWK} 'BEGIN { \
|
|
|
|
i=0; \
|
|
|
|
stack[i]="${PREFIX}" ; \
|
|
|
|
cwd=""; \
|
|
|
|
} \
|
|
|
|
! ( /^\// || /^\#/ || /^$$/ ) { \
|
|
|
|
if ( $$1 == ".." ){ \
|
|
|
|
i=i-1; \
|
|
|
|
cwd = stack[i]; \
|
|
|
|
} else if ( $$1 == "." ){ \
|
|
|
|
} else { \
|
|
|
|
stack[i] = cwd ; \
|
|
|
|
if ( i == 0 ){ \
|
|
|
|
cwd = $$1 ; \
|
|
|
|
} else { \
|
|
|
|
cwd = cwd "\\\\/" $$1 ; \
|
|
|
|
} \
|
|
|
|
print "-e \"/^" cwd "$$$$/d\""; \
|
|
|
|
i=i+1 ; \
|
|
|
|
} \
|
|
|
|
} \
|
|
|
|
' <${MTREE_FILE}
|
|
|
|
.endif
|
|
|
|
|
|
|
|
|
|
|
|
# scan $PREFIX for any files/dirs modified since the package was extracted
|
|
|
|
# will emit "@exec mkdir"-statements for empty directories
|
|
|
|
# XXX will fail for data files that were copied using tar (e.g. emacs)!
|
|
|
|
# XXX should check $LOCALBASE and $X11BASE, and add @cwd statements
|
|
|
|
|
|
|
|
.if !target(print-PLIST)
|
|
|
|
print-PLIST:
|
2001-09-11 18:41:36 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}\
|
|
|
|
${ECHO} '@comment $$'NetBSD'$$'
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}\
|
|
|
|
shlib_type=`${MAKE} ${MAKEFLAGS} show-shlib-type`; \
|
2001-01-04 16:10:17 +01:00
|
|
|
case $$shlib_type in \
|
|
|
|
"a.out") genlinks=1 ;; \
|
|
|
|
*) genlinks=0 ;; \
|
|
|
|
esac; \
|
2000-08-16 03:23:31 +02:00
|
|
|
${FIND} ${PREFIX}/. -newer ${EXTRACT_COOKIE} \! -type d \
|
2000-07-04 13:58:49 +02:00
|
|
|
| ${SED} \
|
2000-11-18 22:55:28 +01:00
|
|
|
-e 's@${PREFIX}/./@@' \
|
|
|
|
-e 's@${OPSYS}@\$${OPSYS}@' \
|
2001-08-24 02:54:46 +02:00
|
|
|
-e 's@${OS_VERSION:S/./\./}@\$${OS_VERSION}@' \
|
2000-11-18 22:55:28 +01:00
|
|
|
-e 's@${MACHINE_ARCH}@\$${MACHINE_ARCH}@' \
|
|
|
|
-e 's@${MACHINE_GNU_ARCH}@\$${MACHINE_GNU_ARCH}@' \
|
|
|
|
-e 's@${MACHINE_GNU_PLATFORM}@\$${MACHINE_GNU_PLATFORM}@' \
|
|
|
|
-e 's@${LOWER_VENDOR}@\$${LOWER_VENDOR}@' \
|
|
|
|
-e 's@${LOWER_OPSYS}@\$${LOWER_OPSYS}@' \
|
|
|
|
-e 's@${PKGNAME}@\$${PKGNAME}@' \
|
2001-09-11 18:41:36 +02:00
|
|
|
| ( ${GREP} -v emul/linux/proc || ${TRUE} ) \
|
2001-08-24 12:50:03 +02:00
|
|
|
| ${SORT} \
|
2000-07-04 13:58:49 +02:00
|
|
|
| ${AWK} ' \
|
2001-01-04 16:10:17 +01:00
|
|
|
/^@/ { print $$0; next } \
|
|
|
|
/.*\/lib[^\/]+\.so\.[0-9]+\.[0-9]+\.[0-9]+$$/ { \
|
|
|
|
print $$0; \
|
|
|
|
sub("\.[0-9]+$$", ""); \
|
|
|
|
if ('$$genlinks') print $$0; \
|
|
|
|
sub("\.[0-9]+$$", ""); \
|
|
|
|
if ('$$genlinks') print $$0; \
|
|
|
|
sub("\.[0-9]+$$", ""); \
|
|
|
|
if ('$$genlinks') print $$0; \
|
|
|
|
next; \
|
|
|
|
} \
|
|
|
|
/.*\/lib[^\/]+\.so\.[0-9]+\.[0-9]+$$/ { \
|
|
|
|
print $$0; \
|
|
|
|
sub("\.[0-9]+$$", ""); \
|
|
|
|
if ('$$genlinks') print $$0; \
|
|
|
|
sub("\.[0-9]+$$", ""); \
|
|
|
|
if ('$$genlinks') print $$0; \
|
|
|
|
next; \
|
|
|
|
} \
|
2000-07-04 13:58:49 +02:00
|
|
|
{ \
|
2000-10-19 04:30:05 +02:00
|
|
|
if (/\.info$$/) { \
|
2001-02-05 19:35:48 +01:00
|
|
|
print "\@unexec install-info --delete --info-dir=%D/info %D/" $$0; \
|
|
|
|
print $$0; \
|
|
|
|
print "\@exec install-info --info-dir=%D/info %D/" $$0; \
|
2000-07-04 13:58:49 +02:00
|
|
|
} else if (!/^info\/dir$$/) { \
|
2001-02-05 19:35:48 +01:00
|
|
|
print $$0; \
|
2000-07-04 13:58:49 +02:00
|
|
|
} \
|
2000-06-16 11:18:26 +02:00
|
|
|
}'
|
2001-09-11 18:41:36 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}\
|
|
|
|
for i in `${FIND} ${PREFIX}/. -newer ${EXTRACT_COOKIE} -type d \
|
2000-07-04 13:58:49 +02:00
|
|
|
| ${SED} \
|
|
|
|
-e s@${PREFIX}/./@@ \
|
2000-07-04 05:52:17 +02:00
|
|
|
-e '/^${PREFIX:S/\//\\\//g}\/.$$/d' \
|
2001-06-12 15:17:01 +02:00
|
|
|
| ${SORT} -r | ${SED} ${COMMON_DIRS}` ; \
|
2000-07-04 13:58:49 +02:00
|
|
|
do \
|
2001-06-12 15:17:01 +02:00
|
|
|
if [ `${LS} -la ${PREFIX}/$$i | ${WC} -l` = 3 ]; then \
|
2001-10-29 16:10:14 +01:00
|
|
|
${ECHO} @exec ${MKDIR} %D/$$i ; \
|
2000-07-04 13:58:49 +02:00
|
|
|
fi ; \
|
|
|
|
${ECHO} @dirrm $$i ; \
|
|
|
|
done \
|
|
|
|
| ${SED} \
|
2000-08-17 03:42:03 +02:00
|
|
|
-e s@${OPSYS}@\$${OPSYS}@ \
|
|
|
|
-e s@${OS_VERSION}@\$${OS_VERSION}@ \
|
|
|
|
-e s@${MACHINE_ARCH}@\$${MACHINE_ARCH}@ \
|
|
|
|
-e s@${MACHINE_GNU_ARCH}@\$${MACHINE_GNU_ARCH}@ \
|
|
|
|
-e s@${MACHINE_GNU_PLATFORM}@\$${MACHINE_GNU_PLATFORM}@ \
|
|
|
|
-e s@${LOWER_VENDOR}@\$${LOWER_VENDOR}@ \
|
|
|
|
-e s@${LOWER_OPSYS}@\$${LOWER_OPSYS}@ \
|
2001-08-24 02:54:46 +02:00
|
|
|
-e s@${PKGNAME}@\$${PKGNAME}@ \
|
2001-09-11 18:41:36 +02:00
|
|
|
| ${GREP} -v emul/linux/proc || ${TRUE}
|
2000-06-16 11:18:26 +02:00
|
|
|
.endif # target(print-PLIST)
|
|
|
|
|
|
|
|
|
1997-08-20 12:21:05 +02:00
|
|
|
# Fake installation of package so that user can pkg_delete it later.
|
1999-08-10 12:48:23 +02:00
|
|
|
# Also, make sure that an installed package is recognized correctly in
|
1997-08-20 12:21:05 +02:00
|
|
|
# accordance to the @pkgdep directive in the packing lists
|
|
|
|
|
|
|
|
.if !target(fake-pkg)
|
2001-01-29 12:34:21 +01:00
|
|
|
fake-pkg: ${PLIST} ${DESCR} ${MESSAGE}
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}\
|
2001-02-16 14:06:17 +01:00
|
|
|
if [ ! -f ${PLIST} -o ! -f ${DESCR} ]; then \
|
1998-10-26 18:40:57 +01:00
|
|
|
${ECHO} "** Missing package files for ${PKGNAME} - installation not recorded."; \
|
|
|
|
exit 1; \
|
|
|
|
fi
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}\
|
|
|
|
if [ ! -d ${PKG_DBDIR} ]; then \
|
1998-10-26 18:40:57 +01:00
|
|
|
${RM} -f ${PKG_DBDIR}; \
|
|
|
|
${MKDIR} ${PKG_DBDIR}; \
|
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. if defined(FORCE_PKG_REGISTER)
|
1999-04-19 22:04:18 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${PKG_DELETE} -O ${PKGNAME}
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${RM} -rf ${PKG_DBDIR}/${PKGNAME}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
1999-03-08 18:26:54 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${RM} -f ${BUILD_VERSION_FILE} ${BUILD_INFO_FILE}
|
1999-11-29 20:48:15 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}${RM} -f ${SIZE_PKG_FILE} ${SIZE_ALL_FILE}
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG}\
|
|
|
|
files=""; \
|
1998-10-26 18:40:57 +01:00
|
|
|
for f in ${.CURDIR}/Makefile ${FILESDIR}/* ${PKGDIR}/*; do \
|
|
|
|
if [ -f $$f ]; then \
|
|
|
|
files="$$files $$f"; \
|
|
|
|
fi; \
|
|
|
|
done; \
|
2001-06-09 14:15:59 +02:00
|
|
|
if [ -f ${DISTINFO_FILE} ]; then \
|
|
|
|
for f in `${AWK} 'NF == 4 && $$3 == "=" { gsub("[()]", "", $$2); print $$2 }' < ${DISTINFO_FILE}`; do \
|
2001-02-15 14:49:04 +01:00
|
|
|
if [ -f ${PATCHDIR}/$$f ]; then \
|
1999-09-03 23:05:58 +02:00
|
|
|
files="$$files ${PATCHDIR}/$$f"; \
|
|
|
|
fi; \
|
1999-08-18 12:02:01 +02:00
|
|
|
done; \
|
|
|
|
fi; \
|
1998-10-26 18:40:57 +01:00
|
|
|
if [ -d ${PATCHDIR} ]; then \
|
|
|
|
for f in ${PATCHDIR}/patch-*; do \
|
|
|
|
case $$f in \
|
|
|
|
*.orig|*.rej|*~) ;; \
|
1999-08-18 12:02:01 +02:00
|
|
|
${PATCHDIR}/patch-local-*) \
|
1998-10-26 18:40:57 +01:00
|
|
|
files="$$files $$f" ;; \
|
|
|
|
esac; \
|
|
|
|
done; \
|
|
|
|
fi; \
|
2000-06-03 17:08:35 +02:00
|
|
|
${GREP} '\$$NetBSD' $$files | ${SED} -e 's|^${PKGSRCDIR}/||' > ${BUILD_VERSION_FILE};
|
2001-07-19 00:43:32 +02:00
|
|
|
. for def in ${BUILD_DEFS}
|
2000-11-29 12:39:25 +01:00
|
|
|
@${ECHO} ${def}= ${${def}:Q} | ${SED} -e 's|^PATH=[^ ]*|PATH=...|' >> ${BUILD_INFO_FILE}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endfor
|
2001-01-13 01:18:51 +01:00
|
|
|
@if ${CC} --version >/dev/null 2>&1; then \
|
|
|
|
${ECHO} "CC= ${CC}-`${CC} --version`" >> ${BUILD_INFO_FILE}; \
|
|
|
|
fi
|
2001-07-19 00:43:32 +02:00
|
|
|
. ifdef USE_PERL5
|
2000-10-18 01:56:19 +02:00
|
|
|
@${ECHO} "PERL= `${PERL5} --version 2>/dev/null | ${GREP} 'This is perl'`" >> ${BUILD_INFO_FILE}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
|
|
|
. ifdef USE_GMAKE
|
1998-10-26 18:40:57 +01:00
|
|
|
@${ECHO} "GMAKE= `${GMAKE} --version | ${GREP} version`" >> ${BUILD_INFO_FILE}
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif
|
2000-11-22 11:40:21 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2000-08-01 04:16:58 +02:00
|
|
|
${ECHO} "_PKGTOOLS_VER=${PKGTOOLS_VERSION}" >> ${BUILD_INFO_FILE}
|
2000-11-22 11:40:21 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2000-06-25 05:58:17 +02:00
|
|
|
size_this=`${MAKE} ${MAKEFLAGS} print-pkg-size-this`; \
|
|
|
|
size_depends=`${MAKE} ${MAKEFLAGS} print-pkg-size-depends`; \
|
2000-06-27 22:14:45 +02:00
|
|
|
${ECHO} $$size_this >${SIZE_PKG_FILE}; \
|
2000-09-15 11:18:21 +02:00
|
|
|
${ECHO} $$size_this $$size_depends + p | ${DC} >${SIZE_ALL_FILE}
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2000-11-22 11:40:21 +01:00
|
|
|
if [ ! -d ${PKG_DBDIR}/${PKGNAME} ]; then \
|
2000-03-13 15:19:15 +01:00
|
|
|
${ECHO_MSG} "${_PKGSRC_IN}> Registering installation for ${PKGNAME}"; \
|
1998-09-21 14:22:47 +02:00
|
|
|
${MKDIR} ${PKG_DBDIR}/${PKGNAME}; \
|
2001-01-29 02:56:51 +01:00
|
|
|
${PKG_CREATE} ${PKG_ARGS_INSTALL} -O ${PKGFILE} > ${PKG_DBDIR}/${PKGNAME}/+CONTENTS; \
|
1998-09-21 14:22:47 +02:00
|
|
|
${CP} ${DESCR} ${PKG_DBDIR}/${PKGNAME}/+DESC; \
|
2001-02-21 16:01:29 +01:00
|
|
|
${ECHO} ${COMMENT:Q} > ${PKG_DBDIR}/${PKGNAME}/+COMMENT; \
|
1998-10-26 18:40:57 +01:00
|
|
|
${CP} ${BUILD_VERSION_FILE} ${PKG_DBDIR}/${PKGNAME}/+BUILD_VERSION; \
|
|
|
|
${CP} ${BUILD_INFO_FILE} ${PKG_DBDIR}/${PKGNAME}/+BUILD_INFO; \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
if ${TEST} -e ${SIZE_PKG_FILE}; then \
|
1999-11-29 20:48:15 +01:00
|
|
|
${CP} ${SIZE_PKG_FILE} ${PKG_DBDIR}/${PKGNAME}/+SIZE_PKG; \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
fi ; \
|
|
|
|
if ${TEST} -e ${SIZE_ALL_FILE}; then \
|
1999-11-29 20:48:15 +01:00
|
|
|
${CP} ${SIZE_ALL_FILE} ${PKG_DBDIR}/${PKGNAME}/+SIZE_ALL; \
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
fi ; \
|
1998-09-21 14:22:47 +02:00
|
|
|
if [ -n "${INSTALL_FILE}" ]; then \
|
1999-03-08 18:26:54 +01:00
|
|
|
if ${TEST} -e ${INSTALL_FILE}; then \
|
1998-09-21 14:22:47 +02:00
|
|
|
${CP} ${INSTALL_FILE} ${PKG_DBDIR}/${PKGNAME}/+INSTALL; \
|
|
|
|
fi; \
|
|
|
|
fi; \
|
|
|
|
if [ -n "${DEINSTALL_FILE}" ]; then \
|
1999-03-08 18:26:54 +01:00
|
|
|
if ${TEST} -e ${DEINSTALL_FILE}; then \
|
1998-09-21 14:22:47 +02:00
|
|
|
${CP} ${DEINSTALL_FILE} ${PKG_DBDIR}/${PKGNAME}/+DEINSTALL; \
|
|
|
|
fi; \
|
|
|
|
fi; \
|
2001-06-12 15:17:01 +02:00
|
|
|
if [ -n "${MESSAGE}" ]; then \
|
|
|
|
if ${TEST} -e ${MESSAGE}; then \
|
2001-01-29 12:34:21 +01:00
|
|
|
${CP} ${MESSAGE} ${PKG_DBDIR}/${PKGNAME}/+DISPLAY; \
|
1998-09-21 14:22:47 +02:00
|
|
|
fi; \
|
|
|
|
fi; \
|
2001-06-12 15:17:01 +02:00
|
|
|
list="`${MAKE} ${MAKEFLAGS} run-depends-list PACKAGE_DEPENDS_QUICK=true ECHO_MSG=${TRUE} | ${SORT} -u`" ; \
|
2000-11-22 11:40:21 +01:00
|
|
|
for dep in $$list; do \
|
1998-10-05 02:34:44 +02:00
|
|
|
realdep="`${PKG_INFO} -e \"$$dep\" || ${TRUE}`" ; \
|
2001-06-12 15:17:01 +02:00
|
|
|
if [ `${ECHO} $$realdep | ${WC} -w` -gt 1 ]; then \
|
2000-01-10 20:43:37 +01:00
|
|
|
${ECHO} '***' "WARNING: '$$dep' expands to several installed packages " ; \
|
|
|
|
${ECHO} " (" `${ECHO} $$realdep` ")." ; \
|
|
|
|
${ECHO} " Please check if this is really intended!" ; \
|
|
|
|
continue ; \
|
|
|
|
fi ; \
|
2001-06-12 15:17:01 +02:00
|
|
|
done ; \
|
|
|
|
for realdep in `${ECHO} $$list | ${XARGS} -n 1 ${SETENV} ${PKG_INFO} -e | ${SORT} -u`; do \
|
2000-01-05 17:55:32 +01:00
|
|
|
if ${TEST} -z "$$realdep"; then \
|
2000-09-10 14:11:25 +02:00
|
|
|
${ECHO} "$$dep not installed - dependency NOT registered" ; \
|
1999-03-08 18:26:54 +01:00
|
|
|
elif [ -d ${PKG_DBDIR}/$$realdep ]; then \
|
|
|
|
if ${TEST} ! -e ${PKG_DBDIR}/$$realdep/+REQUIRED_BY; then \
|
|
|
|
${TOUCH} ${PKG_DBDIR}/$$realdep/+REQUIRED_BY; \
|
|
|
|
fi; \
|
|
|
|
${AWK} 'BEGIN { found = 0; } \
|
|
|
|
$$0 == "${PKGNAME}" { found = 1; } \
|
|
|
|
{ print $$0; } \
|
|
|
|
END { if (!found) { printf("%s\n", "${PKGNAME}"); }}' \
|
|
|
|
< ${PKG_DBDIR}/$$realdep/+REQUIRED_BY > ${PKG_DBDIR}/$$realdep/reqby.$$$$; \
|
|
|
|
${MV} ${PKG_DBDIR}/$$realdep/reqby.$$$$ ${PKG_DBDIR}/$$realdep/+REQUIRED_BY; \
|
|
|
|
${ECHO} "${PKGNAME} requires installed package $$realdep"; \
|
1998-10-12 21:40:33 +02:00
|
|
|
fi; \
|
|
|
|
done; \
|
1997-08-20 12:21:05 +02:00
|
|
|
fi
|
2000-09-27 14:50:49 +02:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
if [ -f ${DISTDIR}/vulnerabilities ]; then \
|
|
|
|
allvul="`${AWK} '/#.*/ { next } NF > 0 { cmd = sprintf(\"${PKG_INFO} -e \\\"%s\\\"\", $$1); system(cmd) }' ${DISTDIR}/vulnerabilities`"; \
|
|
|
|
for vul in "" $$allvul; do \
|
|
|
|
if [ "X$$vul" = "X" ]; then continue; fi; \
|
|
|
|
if [ "$$vul" = "${PKGNAME}" ]; then \
|
|
|
|
${ECHO_MSG} '*** WARNING: This package (${PKGNAME}) has a security vulnerability ***'; \
|
|
|
|
${ECHO_MSG} "`${MAKE} show-vulnerabilities`"; \
|
|
|
|
${ECHO_MSG} '*** WARNING: You are strongly advised to deinstall ${PKGNAME} now ***'; \
|
|
|
|
fi; \
|
|
|
|
done; \
|
|
|
|
fi
|
1997-08-20 12:21:05 +02:00
|
|
|
.endif
|
|
|
|
|
1999-08-10 12:48:23 +02:00
|
|
|
# Depend is generally meaningless for arbitrary packages, but if someone wants
|
1997-08-20 12:21:05 +02:00
|
|
|
# one they can override this. This is just to catch people who've gotten into
|
1998-04-19 14:48:07 +02:00
|
|
|
# the habit of typing `${MAKE} depend all install' as a matter of course.
|
1997-08-20 12:21:05 +02:00
|
|
|
#
|
|
|
|
.if !target(depend)
|
|
|
|
depend:
|
|
|
|
.endif
|
|
|
|
|
|
|
|
# Same goes for tags
|
|
|
|
.if !target(tags)
|
|
|
|
tags:
|
|
|
|
.endif
|
1997-09-28 02:44:15 +02:00
|
|
|
|
1999-07-02 10:37:20 +02:00
|
|
|
# if automatic manual page compression is done by the package according
|
|
|
|
# to MANZ's value, set MANCOMPRESSED if MANZ is set
|
1999-06-28 13:42:28 +02:00
|
|
|
.if defined(MANCOMPRESSED_IF_MANZ) && defined(MANZ)
|
|
|
|
MANCOMPRESSED= yes
|
2001-03-26 19:04:50 +02:00
|
|
|
MAKE_ENV+= MANZ="${MANZ}"
|
1999-06-28 13:42:28 +02:00
|
|
|
.endif
|
|
|
|
|
1997-12-13 22:28:24 +01:00
|
|
|
# generate ${PLIST} from ${PLIST_SRC} by:
|
1998-06-05 14:45:53 +02:00
|
|
|
# - fixing list of man-pages according to MANCOMPRESSED/MANZ
|
1998-06-22 16:47:49 +02:00
|
|
|
# (we don't take any notice of MANCOMPRESSED as many packages have .gz
|
|
|
|
# pages in PLIST even when they install manpages without compressing them)
|
1999-09-03 04:43:51 +02:00
|
|
|
# - substituting by ${PLIST_SUBST}
|
2000-08-27 04:15:49 +02:00
|
|
|
# - adding files and appropriate rmdir statements for perl5 modules if
|
|
|
|
# PERL5_PACKLIST is defined
|
2000-11-29 14:18:22 +01:00
|
|
|
# - adding symlinks for shared libs (ELF) or ldconfig calls (a.out).
|
1998-06-05 14:45:53 +02:00
|
|
|
|
2001-10-30 14:53:15 +01:00
|
|
|
.if ${OPSYS} == "NetBSD" || ${OPSYS} == "Darwin"
|
1999-03-16 10:50:28 +01:00
|
|
|
IMAKE_MAN_CMD=
|
2001-07-19 00:43:32 +02:00
|
|
|
. ifdef MANZ
|
1999-09-24 19:13:31 +02:00
|
|
|
MANZ_EXPRESSION= -e 's|\(^\([^@/]*/\)*man/\([^/]*/\)\{0,1\}man[1-9ln]/.*[1-9ln]$$\)|\1.gz|' \
|
2001-02-26 18:23:37 +01:00
|
|
|
-e 's|\(^\([^@/]*/\)*man/\([^/]*/\)\{0,1\}cat[1-9ln]/.*0$$\)|\1.gz|'
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
1999-09-24 19:13:31 +02:00
|
|
|
MANZ_EXPRESSION= -e 's|\(^\([^@/]*/\)*man/\([^/]*/\)\{0,1\}man[1-9ln]/.*[1-9ln]\)\.gz$$|\1|' \
|
2001-02-26 18:23:37 +01:00
|
|
|
-e 's|\(^\([^@/]*/\)*man/\([^/]*/\)\{0,1\}cat[1-9ln]/.*0\)\.gz$$|\1|'
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # MANZ
|
1999-03-16 10:50:28 +01:00
|
|
|
MANZ_NAWK_CMD=
|
1999-03-12 11:19:14 +01:00
|
|
|
.elif ${OPSYS} == "SunOS"
|
2001-07-19 00:43:32 +02:00
|
|
|
. ifdef USE_IMAKE
|
2001-02-26 18:23:37 +01:00
|
|
|
IMAKE_MAN_CMD= ${AWK} '/^([^\/]*\/)*man\/([^\/]*\/)?cat[1-9ln]\/.*0(\.gz)?$$/ { \
|
1999-03-12 11:19:14 +01:00
|
|
|
sect = $$0; n = match(sect, "/cat[1-9ln]"); \
|
2001-06-07 18:21:24 +02:00
|
|
|
sect = sprintf(".%s", substr(sect, n + 4, 1)); \
|
1999-03-12 11:19:14 +01:00
|
|
|
s = $$0; sub("/cat", "/man", s); sub("\.0(\.gz)?$$", sect, s); \
|
|
|
|
if (match($$0, "\.gz$$") > 0) { ext = ".gz";} else { ext = "";} \
|
|
|
|
$$0 = sprintf("%s%s", s, ext); \
|
1999-03-16 10:50:28 +01:00
|
|
|
} { print $$0; }' |
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
1999-03-16 10:50:28 +01:00
|
|
|
IMAKE_MAN_CMD=
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # USE_IMAKE
|
|
|
|
. ifdef MANZ
|
1999-03-12 11:19:14 +01:00
|
|
|
MANZ_NAWK_CMD= ${AWK} '/^([^\/]*\/)*man\/([^\/]*\/)?man[1-9ln]\/.*[1-9ln]\.gz$$/ { \
|
|
|
|
$$0 = sprintf("%s.gz", $$0); \
|
|
|
|
} \
|
2001-02-26 18:23:37 +01:00
|
|
|
/^([^\/]*\/)*man\/([^\/]*\/)?cat[1-9ln]\/.*0\.gz$$/ { \
|
1999-03-12 11:19:14 +01:00
|
|
|
$$0 = sprintf("%s.gz", $$0); \
|
|
|
|
} \
|
1999-03-16 10:50:28 +01:00
|
|
|
{ print $$0; }' |
|
2001-07-19 00:43:32 +02:00
|
|
|
. else
|
1999-03-12 11:19:14 +01:00
|
|
|
MANZ_NAWK_CMD= ${AWK} '/^([^\/]*\/)*man\/([^\/]*\/)?man[1-9ln]\/.*[1-9ln]\.gz$$/ { \
|
|
|
|
$$0 = substr($$0, 1, length($$0) - 3); \
|
|
|
|
} \
|
2001-02-26 18:23:37 +01:00
|
|
|
/^([^\/]*\/)*man\/([^\/]*\/)?cat[1-9ln]\/.*0\.gz$$/ { \
|
1999-03-12 11:19:14 +01:00
|
|
|
$$0 = substr($$0, 1, length($$0) - 3); \
|
|
|
|
} \
|
1999-03-16 10:50:28 +01:00
|
|
|
{ print $$0; }' |
|
2001-07-19 00:43:32 +02:00
|
|
|
. endif # MANZ
|
1999-03-12 11:19:14 +01:00
|
|
|
MANZ_EXPRESSION=
|
|
|
|
.endif # SunOS
|
|
|
|
|
2000-08-27 04:15:49 +02:00
|
|
|
.if defined(PERL5_PACKLIST)
|
|
|
|
PERL5_COMMENT= ( ${ECHO} "@comment The following lines are automatically generated"; \
|
2000-09-01 20:20:06 +02:00
|
|
|
${ECHO} "@comment from the installed .packlist files." )
|
2001-06-12 14:49:55 +02:00
|
|
|
PERL5_PACKLIST_FILES= ( ${CAT} ${PERL5_PACKLIST}; for f in ${PERL5_PACKLIST}; do [ ! -f $$f ] || ${ECHO} $$f; done ) \
|
2000-08-30 20:49:18 +02:00
|
|
|
| ${SED} -e "s,[ ].*,," -e "s,/\./,/,g" -e "s,${PREFIX}/,," \
|
2001-06-12 15:17:01 +02:00
|
|
|
| ${SORT} -u
|
2001-06-12 14:49:55 +02:00
|
|
|
PERL5_PACKLIST_DIRS= ( ${CAT} ${PERL5_PACKLIST}; for f in ${PERL5_PACKLIST}; do [ ! -f $$f ] || ${ECHO} $$f; done ) \
|
2000-08-30 20:49:18 +02:00
|
|
|
| ${SED} -e "s,[ ].*,," -e "s,/\./,/,g" -e "s,${PREFIX}/,," \
|
2001-06-12 15:17:01 +02:00
|
|
|
-e "s,^,@unexec ${RMDIR} -p %D/," \
|
2000-08-27 04:15:49 +02:00
|
|
|
-e "s,/[^/]*$$, 2>/dev/null || true," \
|
2001-06-12 15:17:01 +02:00
|
|
|
| ${SORT} -ur
|
2000-08-27 04:15:49 +02:00
|
|
|
PERL5_GENERATE_PLIST= ${PERL5_COMMENT}; \
|
|
|
|
${PERL5_PACKLIST_FILES}; \
|
|
|
|
${PERL5_PACKLIST_DIRS}
|
|
|
|
.else
|
|
|
|
PERL5_GENERATE_PLIST= ${TRUE}
|
|
|
|
.endif
|
|
|
|
|
2001-01-29 12:34:21 +01:00
|
|
|
message: ${MESSAGE}
|
|
|
|
.ifdef MESSAGE
|
|
|
|
${MESSAGE}: ${MESSAGE_SRC}
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
if [ -z "${MESSAGE_SRC}" ]; then \
|
|
|
|
${ECHO} "${MESSAGE_SRC} not found."; \
|
|
|
|
${ECHO} "Please set MESSAGE_SRC correctly."; \
|
|
|
|
else \
|
2001-11-14 22:04:43 +01:00
|
|
|
${CAT} ${MESSAGE_SRC} | \
|
|
|
|
${SED} ${MESSAGE_SUBST_SED} \
|
|
|
|
> ${MESSAGE}; \
|
2001-01-29 12:34:21 +01:00
|
|
|
fi
|
|
|
|
.endif
|
|
|
|
|
2000-01-05 17:55:32 +01:00
|
|
|
plist: ${PLIST}
|
1997-11-22 04:39:20 +01:00
|
|
|
${PLIST}: ${PLIST_SRC}
|
1999-03-12 11:19:14 +01:00
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
2001-04-03 14:06:31 +02:00
|
|
|
{ ${CAT} ${PLIST_SRC}; \
|
|
|
|
${PERL5_GENERATE_PLIST}; } | \
|
2000-12-30 12:19:04 +01:00
|
|
|
${MANZ_NAWK_CMD} \
|
|
|
|
${IMAKE_MAN_CMD} \
|
|
|
|
${SED} ${MANZ_EXPRESSION} \
|
|
|
|
${PLIST_SUBST:S/=/}!/:S/$/!g/:S/^/ -e s!\\\${/} \
|
|
|
|
> ${PLIST}; \
|
|
|
|
${MAKE} ${MAKEFLAGS} do-shlib-handling \
|
|
|
|
SHLIB_PLIST_MODE=1 ; \
|
1998-08-26 18:50:48 +02:00
|
|
|
|
|
|
|
# generate ${DESCR} from ${DESCR_SRC} by:
|
|
|
|
# - Appending the homepage URL, if any
|
|
|
|
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
descr: ${DESCR}
|
1998-08-26 18:50:48 +02:00
|
|
|
${DESCR}: ${DESCR_SRC}
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
@${CAT} ${DESCR_SRC} >${DESCR}
|
1998-08-26 18:50:48 +02:00
|
|
|
.if defined(HOMEPAGE)
|
Speedups!
Major changes:
* Avoid a big bunch of subshells/forks/execs by using make(1) features;
should be good for some minor speedups.
* Use shell builtins for echo, true, false, test. Using full paths here
causes fork&execs, making things slow. Only changed for NetBSD.
* Rename all references to ${.MAKEFLAGS} to ${MAKEFLAGS}. See make(1).
* Evaluate all !=s only once, and add them to MAKEFLAGS
* Pass ${MAKEFLAGS} to ALL ${MAKE} calls
Now PKGTOOLS_VERSION is really only set once in a whole "make package"
cycle, even across dependencies.
Minor changes:
* SORTED_MASTER_SITES was renamed SORTED_MASTER_SITES_CMD and is now
(only) execuded in the places where it's needed.
* Don't check for /usr/bin/fetch - we never had it, and if someone
depends on it he can set FETCH_CMD instead.
* Don't fall back to README.port
* Replace some commands by their uppercase equivalents (sed -> ${SED},
same for grep, awk, ...)
* Some whitespace changes to improve readability
=> With these changes, times for a "make clean" in x11/kde go down to 20%,
time for "make readme" goes down to 33%!
2000-06-03 09:15:28 +02:00
|
|
|
@\
|
|
|
|
${ECHO} >>${DESCR} ; \
|
|
|
|
${ECHO} "Homepage:" >>${DESCR} ; \
|
|
|
|
${ECHO} '${HOMEPAGE}' >>${DESCR}
|
1998-08-26 18:50:48 +02:00
|
|
|
.endif
|
2000-07-28 03:16:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
# For bulk build targets (bulk-install, bulk-package), the
|
2000-08-01 04:16:58 +02:00
|
|
|
# BATCH variable must be set in /etc/mk.conf:
|
2000-07-28 03:16:27 +02:00
|
|
|
#
|
|
|
|
.if defined(BATCH)
|
2001-07-19 00:43:32 +02:00
|
|
|
. include "../../mk/bulk/bsd.bulk-pkg.mk"
|
2000-07-28 03:16:27 +02:00
|
|
|
.endif
|