1998-08-04 17:05:38 +02:00
# $NetBSD: bsd.pkg.mk,v 1.133 1998/08/04 15:05:38 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.
1997-12-13 22:28:24 +01:00
# Get the operating system type
OPSYS != uname -s
1998-07-31 16:55:38 +02:00
# Include any preferences, if not already included
. i n c l u d e "../../mk/bsd.prefs.mk"
1997-09-28 02:44:15 +02:00
. i f d e f i n e d ( O N L Y _ F O R _ A R C H S )
. f o r _ _ A R C H i n $ { O N L Y _ F O R _ A R C H S }
1998-07-27 00:20:22 +02:00
.if ${MACHINE_ARCH : M ${__ARCH }} != ""
1998-01-15 23:58:59 +01:00
__ARCH_OK ?= 1
1997-09-28 02:44:15 +02:00
. e n d i f
. e n d f o r
. e l s e
1998-01-15 23:58:59 +01:00
__ARCH_OK ?= 1
1997-09-28 02:44:15 +02:00
. e n d i f
1997-08-20 12:21:05 +02:00
. i f e x i s t s ( $ { . C U R D I R } / . . / M a k e f i l e . i n c )
. i n c l u d e "${.CURDIR}/../Makefile.inc"
. e n d i f
1997-09-28 02:44:15 +02:00
. i f (${OPSYS} = = "OpenBSD" )
NOMANCOMPRESS ?= yes
DEF_UMASK ?= 022
. e l i f (${OPSYS} = = "NetBSD" )
DEF_UMASK ?= 0022
1997-10-19 01:33:25 +02:00
NOCLEANDEPENDS = yes
1997-09-28 02:44:15 +02:00
. e l s e
DEF_UMASK ?= 0022
. e n d i f
1998-07-31 16:55:38 +02:00
. i f e x i s t s ( $ { . C U R D I R } / M a k e f i l e . $ { M A C H I N E _ A R C H } - $ { O P S Y S } )
. i n c l u d e "${.CURDIR}/Makefile.${MACHINE_ARCH}-${OPSYS}"
1997-08-20 12:21:05 +02:00
. e l i f e x i s t s ( $ { . C U R D I R } / M a k e f i l e . $ { O P S Y S } )
. i n c l u d e "${.CURDIR}/Makefile.${OPSYS}"
1998-07-31 16:55:38 +02:00
. e l i f e x i s t s ( $ { . C U R D I R } / M a k e f i l e . $ { M A C H I N E _ A R C H } )
. i n c l u d e "${.CURDIR}/Makefile.${MACHINE_ARCH}"
1997-08-20 12:21:05 +02:00
. e n d i f
. i f (${OPSYS} = = "NetBSD" )
1997-08-20 18:02:48 +02:00
LOCALBASE ?= ${ DESTDIR } /usr/pkg
1997-08-20 12:21:05 +02:00
. e l s e
1997-08-20 18:02:48 +02:00
LOCALBASE ?= ${ DESTDIR } /usr/local
1997-08-20 12:21:05 +02:00
. e n d i f
X11BASE ?= ${ DESTDIR } /usr/X11R6
1998-05-07 19:21:13 +02:00
PKGSRCDIR = ${ .CURDIR } /../..
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
1998-07-31 16:55:38 +02:00
. i f e x i s t s ( $ { . C U R D I R } / p a t c h e s . $ { M A C H I N E _ A R C H } - $ { O P S Y S } )
PATCHDIR ?= ${ .CURDIR } /patches.${ MACHINE_ARCH } -${ OPSYS }
1997-08-20 12:21:05 +02:00
. e l i f e x i s t s ( $ { . C U R D I R } / p a t c h e s . $ { O P S Y S } )
PATCHDIR ?= ${ .CURDIR } /patches.${ OPSYS }
1998-07-31 16:55:38 +02:00
. e l i f e x i s t s ( $ { . C U R D I R } / p a t c h e s . $ { M A C H I N E _ A R C H } )
PATCHDIR ?= ${ .CURDIR } /patches.${ MACHINE_ARCH }
1997-08-20 12:21:05 +02:00
. e l s e
PATCHDIR ?= ${ .CURDIR } /patches
. e n d i f
1998-07-31 16:55:38 +02:00
. i f e x i s t s ( $ { . C U R D I R } / s c r i p t s . $ { M A C H I N E _ A R C H } - $ { O P S Y S } )
SCRIPTDIR ?= ${ .CURDIR } /scripts.${ MACHINE_ARCH } -${ OPSYS }
1997-08-20 12:21:05 +02:00
. e l i f e x i s t s ( $ { . C U R D I R } / s c r i p t s . $ { O P S Y S } )
SCRIPTDIR ?= ${ .CURDIR } /scripts.${ OPSYS }
1998-07-31 16:55:38 +02:00
. e l i f e x i s t s ( $ { . C U R D I R } / s c r i p t s . $ { M A C H I N E _ A R C H } )
SCRIPTDIR ?= ${ .CURDIR } /scripts.${ MACHINE_ARCH }
1997-08-20 12:21:05 +02:00
. e l s e
SCRIPTDIR ?= ${ .CURDIR } /scripts
. e n d i f
1998-07-31 16:55:38 +02:00
. i f e x i s t s ( $ { . C U R D I R } / f i l e s . $ { M A C H I N E _ A R C H } - $ { O P S Y S } )
FILESDIR ?= ${ .CURDIR } /files.${ MACHINE_ARCH } -${ OPSYS }
1997-08-20 12:21:05 +02:00
. e l i f e x i s t s ( $ { . C U R D I R } / f i l e s . $ { O P S Y S } )
FILESDIR ?= ${ .CURDIR } /files.${ OPSYS }
1998-07-31 16:55:38 +02:00
. e l i f e x i s t s ( $ { . C U R D I R } / f i l e s . $ { M A C H I N E _ A R C H } )
FILESDIR ?= ${ .CURDIR } /files.${ MACHINE_ARCH }
1997-08-20 12:21:05 +02:00
. e l s e
FILESDIR ?= ${ .CURDIR } /files
. e n d i f
1998-07-31 16:55:38 +02:00
. i f e x i s t s ( $ { . C U R D I R } / p k g . $ { M A C H I N E _ A R C H } - $ { O P S Y S } )
PKGDIR ?= ${ .CURDIR } /pkg.${ MACHINE_ARCH } -${ OPSYS }
1997-08-20 12:21:05 +02:00
. e l i f e x i s t s ( $ { . C U R D I R } / p k g . $ { O P S Y S } )
PKGDIR ?= ${ .CURDIR } /pkg.${ OPSYS }
1998-07-31 16:55:38 +02:00
. e l i f e x i s t s ( $ { . C U R D I R } / p k g . $ { M A C H I N E _ A R C H } )
PKGDIR ?= ${ .CURDIR } /pkg.${ MACHINE_ARCH }
1997-08-20 12:21:05 +02:00
. e l s e
PKGDIR ?= ${ .CURDIR } /pkg
. e n d i f
1998-06-20 16:01:28 +02:00
. i f d e f i n e d ( U S E _ I M A K E ) | | d e f i n e d ( U S E _ M O T I F ) | | d e f i n e d ( U S E _ X 1 1 )
1998-07-31 16:55:38 +02:00
. i f d e f i n e d ( U S E _ L O C A L B A S E _ F O R _ X 1 1 )
PREFIX ?= ${ LOCALBASE }
BUILD_DEPENDS += ${ X11BASE } /lib/X11/config/xpkgwedge.def:../../x11/xpkgwedge
. e l s e
1997-08-20 12:21:05 +02:00
PREFIX ?= ${ X11BASE }
1998-07-31 16:55:38 +02:00
. e n d i f
1997-08-20 12:21:05 +02:00
. e l s e
PREFIX ?= ${ LOCALBASE }
. e n d i f
1998-07-31 16:55:38 +02:00
1997-08-20 12:21:05 +02:00
. i f d e f i n e d ( U S E _ G M A K E )
1998-05-07 19:21:13 +02:00
BUILD_DEPENDS += ${ GMAKE } :${ PKGSRCDIR } /devel/gmake
1997-11-05 14:36:31 +01:00
MAKE_PROGRAM = ${ GMAKE }
. e l s e
MAKE_PROGRAM = ${ MAKE }
1997-08-20 12:21:05 +02:00
. e n d i f
. i f d e f i n e d ( U S E _ P E R L 5 )
1998-05-07 19:21:13 +02:00
DEPENDS += perl-5.00404:${ PKGSRCDIR } /lang/perl5
1997-08-20 12:21:05 +02:00
. e n d i f
1998-04-17 11:37:21 +02:00
. i f d e f i n e d ( I N F O _ F I L E S )
USE_GTEXINFO = yes
. e n d i f
. i f d e f i n e d ( U S E _ G T E X I N F O )
1998-05-07 19:21:13 +02:00
DEPENDS += gtexinfo-3.12:${ PKGSRCDIR } /devel/gtexinfo
1998-04-17 11:37:21 +02:00
. e n d i f
1998-06-05 14:14:44 +02:00
. i f d e f i n e d ( U S E _ M O T I F )
1998-07-31 16:55:38 +02:00
. i f e x i s t s ( $ { X 1 1 B A S E } / i n c l u d e / X m / X m . h )
1998-06-05 14:14:44 +02:00
RUN_DEPENDS += ${ X11BASE } /include/Xm/Xm.h:../../x11/lesstif
1998-07-31 16:55:38 +02:00
. e l s e
RUN_DEPENDS += ${ PREFIX } /include/Xm/Xm.h:../../x11/lesstif
BUILD_DEPENDS += ${ PREFIX } /include/Xm/Xm.h:../../x11/lesstif
. e n d i f
1998-06-05 14:14:44 +02:00
. e n d i f
1998-07-24 03:41:15 +02:00
. i f d e f i n e d ( U S E _ L I B T O O L )
1998-07-24 03:47:33 +02:00
LIBTOOL = ${ LOCALBASE } /bin/libtool
BUILD_DEPENDS += ${ LIBTOOL } :../../devel/libtool
CONFIGURE_ENV += LIBTOOL = ${ LIBTOOL }
MAKE_ENV += LIBTOOL = ${ LIBTOOL }
1998-07-24 03:41:15 +02:00
. e n d i f
1997-08-20 12:21:05 +02:00
1998-05-07 19:21:13 +02:00
. i f e x i s t s ( $ { P K G S R C D I R } / . . / M a k e f i l e . i n c )
. i n c l u d e "${PKGSRCDIR}/../Makefile.inc"
1997-08-20 12:21:05 +02:00
. e n d i f
# 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.
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
# Miscellaneous overridable commands:
GMAKE ?= gmake
XMKMF ?= xmkmf -a
. i f e x i s t s ( / s b i n / m d 5 )
MD5 ?= /sbin/md5
. e l i f e x i s t s ( / b i n / m d 5 )
MD5 ?= /bin/md5
. e l i f e x i s t s ( / u s r / b i n / m d 5 )
MD5 ?= /usr/bin/md5
. e l s e
MD5 ?= md5
. e n d i f
MD5_FILE ?= ${ FILESDIR } /md5
1998-06-10 10:02:08 +02:00
MAKE_FLAGS ?=
1997-08-20 12:21:05 +02:00
MAKEFILE ?= Makefile
1998-01-15 23:58:59 +01:00
MAKE_ENV += PATH = ${ PATH } :${ LOCALBASE } /bin:${ X11BASE } /bin PREFIX = ${ PREFIX } LOCALBASE = ${ LOCALBASE } X11BASE = ${ X11BASE } MOTIFLIB = " ${ MOTIFLIB } " CFLAGS = " ${ CFLAGS } "
1997-08-20 12:21:05 +02:00
. i f e x i s t s ( / u s r / b i n / f e t c h )
FETCH_CMD ?= /usr/bin/fetch
. e l s e
FETCH_CMD ?= /usr/bin/ftp
. e n d i f
1998-01-22 11:20:48 +01:00
# By default, distfiles have no restrictions placed on them
MIRROR_DISTFILE ?= yes
1997-08-20 12:21:05 +02:00
TOUCH ?= /usr/bin/touch
TOUCH_FLAGS ?= -f
PATCH ?= /usr/bin/patch
PATCH_STRIP ?= -p0
PATCH_DIST_STRIP ?= -p0
1998-06-18 13:45:33 +02:00
. i f d e f i n e d ( P A T C H _ D E B U G ) | | d e f i n e d ( P K G _ V E R B O S E )
1997-08-20 12:21:05 +02:00
PATCH_DEBUG_TMP = yes
PATCH_ARGS ?= -d ${ WRKSRC } -E ${ PATCH_STRIP }
PATCH_DIST_ARGS ?= -d ${ WRKSRC } -E ${ PATCH_DIST_STRIP }
. e l s e
PATCH_DEBUG_TMP = no
PATCH_ARGS ?= -d ${ WRKSRC } --forward --quiet -E ${ PATCH_STRIP }
PATCH_DIST_ARGS ?= -d ${ WRKSRC } --forward --quiet -E ${ PATCH_DIST_STRIP }
. e n d i f
. i f d e f i n e d ( B A T C H )
PATCH_ARGS += --batch
PATCH_DIST_ARGS += --batch
. e n d i f
. i f d e f i n e d ( P A T C H _ C H E C K _ O N L Y )
PATCH_ARGS += -C
PATCH_DIST_ARGS += -C
. e n d i f
1998-03-09 19:36:51 +01:00
# Turn off pax on NetBSD for just now. pax is not bug-compatible with
# GNU tar yet, and some of the archives contain dross after the end of
# archive. tar ignores this, pax thinks it's valid, and asks for the
# second volume of the archive.
. i f e x i s t s ( / b i n / p a x ) & & (${OPSYS} != "NetBSD" )
1998-02-27 14:22:59 +01:00
EXTRACT_CMD ?= /bin/pax
EXTRACT_BEFORE_ARGS ?= -zrf
. e l s e
1997-08-20 12:21:05 +02:00
. i f e x i s t s ( / b i n / t a r )
1998-02-27 14:22:59 +01:00
EXTRACT_CMD ?= /bin/tar
1997-08-20 12:21:05 +02:00
. e l s e
1998-02-27 14:22:59 +01:00
EXTRACT_CMD ?= /usr/bin/tar
1997-08-20 12:21:05 +02:00
. e n d i f
# Backwards compatability.
. i f d e f i n e d ( E X T R A C T _ A R G S )
EXTRACT_BEFORE_ARGS ?= ${ EXTRACT_ARGS }
. e l s e
EXTRACT_BEFORE_ARGS ?= -xzf
. e n d i f
1998-02-27 14:22:59 +01:00
. e n d i f
EXTRACT_SUFX ?= .tar.gz
1997-08-20 12:21:05 +02:00
# Figure out where the local mtree file is
. i f ! d e f i n e d ( M T R E E _ F I L E )
1998-06-20 16:01:28 +02:00
. i f d e f i n e d ( U S E _ I M A K E ) | | d e f i n e d ( U S E _ M O T I F ) | | d e f i n e d ( U S E _ X 1 1 )
1997-08-20 12:21:05 +02:00
MTREE_FILE = /etc/mtree/BSD.x11.dist
. e l s e
1997-08-20 18:02:48 +02:00
. i f (${OPSYS} = = "NetBSD" )
MTREE_FILE = /etc/mtree/BSD.pkg.dist
. e l s e
1997-08-20 12:21:05 +02:00
MTREE_FILE = /etc/mtree/BSD.local.dist
. e n d i f
. e n d i f
1997-08-20 18:02:48 +02:00
. e n d i f
1997-08-20 12:21:05 +02:00
MTREE_CMD ?= /usr/sbin/mtree
MTREE_ARGS ?= -U -f ${ MTREE_FILE } -d -e -p
1997-09-28 02:44:15 +02:00
. i f (${OPSYS} = = "OpenBSD" )
. i n c l u d e < b s d . o w n . m k >
1997-09-28 02:56:00 +02:00
MAKE_ENV += EXTRA_SYS_MK_INCLUDES = "<bsd.own.mk>"
1998-01-15 10:37:27 +01:00
. e l i f (${OPSYS} = = "NetBSD" )
NEED_OWN_INSTALL_TARGET = no
1998-04-20 12:16:24 +02:00
. i n c l u d e "../../mk/bsd.own.mk"
1998-01-15 10:37:27 +01:00
SHAREOWN = ${ DOCOWN }
SHAREGRP = ${ DOCGRP }
SHAREMODE = ${ DOCMODE }
1997-09-28 02:44:15 +02:00
. e n d i f
1998-03-08 15:55:04 +01:00
. i f ! d e f i n e d ( N O _ W R K D I R )
. i f d e f i n e d ( O B J M A C H I N E )
1998-07-03 21:27:39 +02:00
WRKDIR_BASENAME ?= work.${ MACHINE_ARCH }
. e l s e # OBJMACHINE
WRKDIR_BASENAME ?= work
. e n d i f # OBJMACHINE
WRKDIR ?= ${ .CURDIR } /${ WRKDIR_BASENAME }
. e l s e # !NO_WRKDIR
1998-03-08 15:55:04 +01:00
WRKDIR ?= ${ .CURDIR }
1998-07-03 21:27:39 +02:00
. e n d i f # !NO_WRKDIR
1998-03-08 15:55:04 +01:00
. i f d e f i n e d ( N O _ W R K S U B D I R )
WRKSRC ?= ${ WRKDIR }
1998-07-03 21:27:39 +02:00
. e l s e # NO_WRKSUBDIR
1998-03-08 15:55:04 +01:00
WRKSRC ?= ${ WRKDIR } /${ DISTNAME }
1998-07-03 21:27:39 +02:00
. e n d i f # NO_WRKSUBDIR
1998-03-08 15:55:04 +01:00
. i f d e f i n e d ( W R K O B J D I R )
# XXX Is pwd -P available in FreeBSD's /bin/sh?
1998-05-07 19:21:13 +02:00
__canonical_PKGSRCDIR != cd ${ PKGSRCDIR } ; pwd -P
1998-03-08 15:55:04 +01:00
__canonical_CURDIR != cd ${ .CURDIR } ; pwd -P
1998-05-07 19:21:13 +02:00
PORTSUBDIR = ${ __canonical_CURDIR : S , ${ __canonical_PKGSRCDIR } /,, }
1998-03-08 15:55:04 +01:00
. e n d i f
1997-08-20 12:21:05 +02:00
# A few aliases for *-install targets
INSTALL_PROGRAM = \
1998-02-09 01:47:23 +01:00
${ INSTALL } ${ COPY } ${ STRIPFLAG } -o ${ BINOWN } -g ${ BINGRP } -m ${ BINMODE }
1997-08-20 12:21:05 +02:00
INSTALL_SCRIPT = \
${ INSTALL } ${ COPY } -o ${ BINOWN } -g ${ BINGRP } -m ${ BINMODE }
INSTALL_DATA = \
${ INSTALL } ${ COPY } -o ${ SHAREOWN } -g ${ SHAREGRP } -m ${ SHAREMODE }
INSTALL_MAN = \
${ INSTALL } ${ COPY } -o ${ MANOWN } -g ${ MANGRP } -m ${ MANMODE }
1998-03-07 22:19:00 +01:00
INSTALL_PROGRAM_DIR = \
${ INSTALL } -d -o ${ BINOWN } -g ${ BINGRP } -m ${ BINMODE }
INSTALL_SCRIPT_DIR = \
${ INSTALL_PROGRAM_DIR }
INSTALL_DATA_DIR = \
1998-04-09 00:27:41 +02:00
${ INSTALL } -d -o ${ SHAREOWN } -g ${ SHAREGRP } -m ${ BINMODE }
1998-03-07 22:19:00 +01: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
INSTALL_MACROS = BSD_INSTALL_PROGRAM = " ${ INSTALL_PROGRAM } " \
BSD_INSTALL_SCRIPT = " ${ INSTALL_SCRIPT } " \
BSD_INSTALL_DATA = " ${ INSTALL_DATA } " \
1998-03-07 22:19:00 +01:00
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
. i f d e f i n e d ( F O R C E _ P A C K A G E )
. u n d e f N O _ P A C K A G E
. e n d i f
COMMENT ?= ${ PKGDIR } /COMMENT
DESCR ?= ${ PKGDIR } /DESCR
1997-10-07 02:30:31 +02:00
PLIST = ${ WRKDIR } /.PLIST
1997-08-20 12:21:05 +02:00
PKG_CMD ?= /usr/sbin/pkg_create
. i f ! d e f i n e d ( P K G _ A R G S )
PKG_ARGS = -v -c ${ COMMENT } -d ${ DESCR } -f ${ PLIST } -p ${ PREFIX } -P " ` ${ MAKE } package-depends|sort -u` "
1998-06-05 13:23:09 +02:00
. i f d e f i n e d ( C O N F L I C T S )
1998-06-05 22:31:55 +02:00
# Only use -C if the pkg_create command supports it.
__PKG_CMD_C__ != ${ PKG_CMD } -C 2>& 1 | /usr/bin/egrep 'illegal option' ; echo
. i f (${__PKG_CMD_C__} = = "" )
1998-06-05 13:23:09 +02:00
PKG_ARGS += -C " ${ CONFLICTS } "
. e n d i f
. e n d i f
1997-08-20 12:21:05 +02:00
. i f e x i s t s ( $ { P K G D I R } / I N S T A L L )
PKG_ARGS += -i ${ PKGDIR } /INSTALL
. e n d i f
. i f e x i s t s ( $ { P K G D I R } / D E I N S T A L L )
PKG_ARGS += -k ${ PKGDIR } /DEINSTALL
. e n d i f
. i f e x i s t s ( $ { P K G D I R } / R E Q )
PKG_ARGS += -r ${ PKGDIR } /REQ
. e n d i f
. i f e x i s t s ( $ { P K G D I R } / M E S S A G E )
PKG_ARGS += -D ${ PKGDIR } /MESSAGE
. e n d i f
. i f ! d e f i n e d ( N O _ M T R E E )
PKG_ARGS += -m ${ MTREE_FILE }
. e n d i f
. e n d i f
PKG_SUFX ?= .tgz
# where pkg_add records its dirty deeds.
PKG_DBDIR ?= /var/db/pkg
# shared/dynamic motif libs
1998-07-31 16:55:38 +02:00
MOTIFLIB ?= -L${ X11BASE } /lib -L${ LOCALBASE } /lib -Wl,-R${ X11BASE } /lib -Wl,-R${ LOCALBASE } /lib -lXm
1997-08-20 12:21:05 +02:00
AWK ?= /usr/bin/awk
BASENAME ?= /usr/bin/basename
CAT ?= /bin/cat
CP ?= /bin/cp
ECHO ?= /bin/echo
FALSE ?= /usr/bin/false
1998-03-01 14:38:03 +01:00
FILE ?= /usr/bin/file
1997-08-20 12:21:05 +02:00
GREP ?= /usr/bin/grep
GUNZIP_CMD ?= /usr/bin/gunzip -f
GZCAT ?= /usr/bin/gzcat
GZIP ?= -9
GZIP_CMD ?= /usr/bin/gzip -nf ${ GZIP }
LDCONFIG ?= /sbin/ldconfig
1997-09-28 02:44:15 +02:00
LN ?= /bin/ln
1997-08-20 12:21:05 +02:00
MKDIR ?= /bin/mkdir -p
MV ?= /bin/mv
RM ?= /bin/rm
RMDIR ?= /bin/rmdir
SED ?= /usr/bin/sed
SETENV ?= /usr/bin/env
SH ?= /bin/sh
TR ?= /usr/bin/tr
1998-02-02 09:10:41 +01:00
TRUE ?= /usr/bin/true
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
. i f d e f i n e d ( U S E _ I M A K E ) & & ! d e f i n e d ( N O _ I N S T A L L _ M A N P A G E S )
INSTALL_TARGET += install.man
. e n d i f
1998-05-29 11:21:43 +02:00
# If this host is behind a filtering firewall, use passive ftp(1)
. i f d e f i n e d ( P A S S I V E _ F E T C H )
FETCH_BEFORE_ARGS += -p
. e n d i f
1997-08-20 12:21:05 +02:00
# Popular master sites
MASTER_SITE_XCONTRIB += \
ftp://crl.dec.com/pub/X11/contrib/%SUBDIR%/ \
1998-06-05 14:45:53 +02:00
ftp://ftp.eu.net/X11/contrib/%SUBDIR%/ \
1998-03-24 11:27:44 +01:00
ftp://ftp.uni-paderborn.de/pub/X11/contrib/%SUBDIR%/ \
ftp://ftp.x.org/contrib/%SUBDIR%/
1997-08-20 12:21:05 +02:00
MASTER_SITE_GNU += \
ftp://prep.ai.mit.edu/pub/gnu/%SUBDIR%/ \
ftp://wuarchive.wustl.edu/systems/gnu/%SUBDIR%/
MASTER_SITE_PERL_CPAN += \
ftp://ftp.digital.com/pub/plan/perl/CPAN/modules/by-module/%SUBDIR%/ \
ftp://ftp.cdrom.com/pub/perl/CPAN/modules/by-module/%SUBDIR%/
MASTER_SITE_TEX_CTAN += \
1998-06-05 14:45:53 +02:00
ftp://ftp.cdrom.com/pub/tex/ctan/%SUBDIR%/ \
ftp://wuarchive.wustl.edu/packages/TeX/%SUBDIR%/ \
ftp://ftp.funet.fi/pub/TeX/CTAN/%SUBDIR%/ \
ftp://ftp.tex.ac.uk/public/ctan/tex-archive/%SUBDIR%/ \
ftp://ftp.dante.de/tex-archive/%SUBDIR%/
1997-08-20 12:21:05 +02:00
MASTER_SITE_SUNSITE += \
ftp://sunsite.unc.edu/pub/Linux/%SUBDIR%/ \
ftp://ftp.infomagic.com/pub/mirrors/linux/sunsite/%SUBDIR%/ \
ftp://ftp.funet.fi/pub/mirrors/sunsite.unc.edu/pub/Linux/%SUBDIR%/
# Empty declaration to avoid "variable MASTER_SITES recursive" error
MASTER_SITES ?=
PATCH_SITES ?=
# Substitute subdirectory names
MASTER_SITES := ${ MASTER_SITES : S /%SUBDIR%/ ${ MASTER_SITE_SUBDIR } / }
PATCH_SITES := ${ PATCH_SITES : S /%SUBDIR%/ ${ PATCH_SITE_SUBDIR } / }
# The primary backup site.
MASTER_SITE_BACKUP ?= \
1997-12-19 11:20:02 +01:00
ftp://ftp.netbsd.org/pub/NetBSD/packages/distfiles/${ DIST_SUBDIR } / \
1997-08-20 12:21:05 +02:00
ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/${ DIST_SUBDIR } /
# If the user has this set, go to the FreeBSD repository for everything.
. i f d e f i n e d ( M A S T E R _ S I T E _ F R E E B S D )
MASTER_SITE_OVERRIDE = ${ MASTER_SITE_BACKUP }
. e n d i f
# Where to put distfiles that don't have any other master site
MASTER_SITE_LOCAL ?= \
1997-12-29 21:10:24 +01:00
ftp://ftp.netbsd.org/pub/NetBSD/packages/distfiles/LOCAL_PORTS/ \
1997-08-20 12:21:05 +02:00
ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/LOCAL_PORTS/
# I guess we're in the master distribution business! :) As we gain mirror
# sites for distfiles, add them to this list.
. i f ! d e f i n e d ( M A S T E R _ S I T E _ O V E R R I D E )
MASTER_SITES += ${ MASTER_SITE_BACKUP }
PATCH_SITES += ${ MASTER_SITE_BACKUP }
. e l s e
MASTER_SITES := ${ MASTER_SITE_OVERRIDE } ${ MASTER_SITES }
PATCH_SITES := ${ MASTER_SITE_OVERRIDE } ${ PATCH_SITES }
. e n d i f
# Derived names so that they're easily overridable.
DISTFILES ?= ${ DISTNAME } ${ EXTRACT_SUFX }
PKGNAME ?= ${ DISTNAME }
ALLFILES ?= ${ DISTFILES } ${ PATCHFILES }
. i f d e f i n e d ( I G N O R E F I L E S )
CKSUMFILES != \
for file in ${ ALLFILES } ; do \
ignore = 0; \
for tmp in ${ IGNOREFILES } ; do \
if [ " $$ file " = " $$ tmp " ] ; then \
ignore = 1; \
fi ; \
done ; \
if [ " $$ ignore " = 0 ] ; then \
echo " $$ file " ; \
1998-01-23 17:48:23 +01:00
else \
echo "" ; \
1997-08-20 12:21:05 +02:00
fi ; \
done
. e l s e
CKSUMFILES = ${ ALLFILES }
. e n d i f
# List of all files, with ${DIST_SUBDIR} in front. Used for checksum.
. i f d e f i n e d ( D I S T _ S U B D I R )
_CKSUMFILES ?= ${ CKSUMFILES : S /^/ ${ DIST_SUBDIR } \/ / }
_IGNOREFILES ?= ${ IGNOREFILES : S /^/ ${ DIST_SUBDIR } \/ / }
. e l s e
_CKSUMFILES ?= ${ CKSUMFILES }
_IGNOREFILES ?= ${ IGNOREFILES }
. e n d i f
# This is what is actually going to be extracted, and is overridable
# by user.
EXTRACT_ONLY ?= ${ DISTFILES }
# Documentation
1998-01-25 15:39:49 +01:00
. i f (${OPSYS} = = "NetBSD" )
MAINTAINER ?= packages@NetBSD.ORG
. e l s e
1997-08-20 12:21:05 +02:00
MAINTAINER ?= ports@FreeBSD.ORG
1998-01-25 15:39:49 +01:00
. e n d i f
1997-08-20 12:21:05 +02:00
. i f ! d e f i n e d ( C A T E G O R I E S )
.BEGIN :
@${ ECHO_MSG } "CATEGORIES is mandatory."
@${ FALSE }
. e n d i f
# Note this has to start with a capital letter (or more accurately, it
# shouldn't match "[a-z]*"), see the target "delete-package-links" below.
PKGREPOSITORYSUBDIR ?= All
PKGREPOSITORY ?= ${ PACKAGES } /${ PKGREPOSITORYSUBDIR }
. i f e x i s t s ( $ { P A C K A G E S } )
PKGFILE ?= ${ PKGREPOSITORY } /${ PKGNAME } ${ PKG_SUFX }
. e l s e
PKGFILE ?= ${ PKGNAME } ${ PKG_SUFX }
. e n d i f
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
. i f d e f i n e d ( G N U _ C O N F I G U R E )
1998-05-23 17:42:58 +02:00
CONFIGURE_ARGS += --host= ${ MACHINE_GNU_ARCH } --netbsd --prefix= ${ PREFIX }
1997-08-20 12:21:05 +02:00
HAS_CONFIGURE = yes
. e n d i f
# 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
. i f d e f i n e d ( B A T C H )
SCRIPTS_ENV += BATCH = yes
. e n d i f
.MAIN : all
1998-07-14 13:36:11 +02:00
# Use aliases, so that all versions of English are acceptable
. i f d e f i n e d ( L I C E N C E ) & & ! d e f i n e d ( L I C E N S E )
LICENSE = ${ LICENCE }
. e n d i f
. i f d e f i n e d ( A C C E P T A B L E _ L I C E N C E S ) & & ! d e f i n e d ( A C C E P T A B L E _ L I C E N S E S )
ACCEPTABLE_LICENSES = ${ ACCEPTABLE_LICENCES }
. e n d i f
1997-08-20 12:21:05 +02:00
################################################################
# Many ways to disable a port.
#
# If we're in BATCH mode and the port is interactive, or we're
# in interactive mode and the port 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.
#
# Don't attempt to build ports that require Motif if you don't
# have Motif.
#
# Ignore ports that can't be resold if building for a CDROM.
#
# Don't build a port if it's restricted and we don't want to get
# into that.
#
# Don't build a port if it's broken.
################################################################
. i f ! d e f i n e d ( N O _ I G N O R E )
. i f ( d e f i n e d ( I S _ I N T E R A C T I V E ) & & d e f i n e d ( B A T C H ) )
IGNORE = "is an interactive port"
. e l i f ( ! d e f i n e d ( I S _ I N T E R A C T I V E ) & & d e f i n e d ( I N T E R A C T I V E ) )
IGNORE = "is not an interactive port"
. e l i f ( d e f i n e d ( N O _ C D R O M ) & & d e f i n e d ( F O R _ C D R O M ) )
IGNORE = " may not be placed on a CDROM: ${ NO_CDROM } "
. e l i f ( d e f i n e d ( R E S T R I C T E D ) & & d e f i n e d ( N O _ R E S T R I C T E D ) )
IGNORE = " is restricted: ${ RESTRICTED } "
1998-06-20 16:01:28 +02:00
. e l i f ( ( d e f i n e d ( U S E _ I M A K E ) | | d e f i n e d ( U S E _ M O T I F ) | | d e f i n e d ( U S E _ X 1 1 ) ) & & \
!exists( ${ X11BASE } ) )
1997-08-20 12:21:05 +02:00
IGNORE = " uses X11, but ${ X11BASE } not found "
. e l i f d e f i n e d ( B R O K E N )
IGNORE = " is marked as broken: ${ BROKEN } "
1998-07-21 13:09:11 +02:00
. e l i f d e f i n e d ( L I C E N S E )
. i f d e f A C C E P T A B L E _ L I C E N S E S
. f o r _ l i c i n $ { A C C E P T A B L E _ L I C E N S E S }
. i f ${LICENSE} = = " ${ _lic } "
1998-07-06 17:10:48 +02:00
_ACCEPTABLE = yes
. e n d i f
. e n d f o r # _lic
1998-07-21 13:09:11 +02:00
. e n d i f # ACCEPTABLE_LICENSES
1998-07-06 17:10:48 +02:00
. i f n d e f _ A C C E P T A B L E
1998-07-21 13:12:11 +02:00
IGNORE = " Unacceptable license: ${ LICENSE } "
1998-07-06 17:10:48 +02:00
. e n d i f
1997-08-20 12:21:05 +02:00
. e n d i f
. i f d e f i n e d ( I G N O R E )
. i f d e f i n e d ( I G N O R E _ S I L E N T )
IGNORECMD = ${ DO_NADA }
. e l s e
IGNORECMD = ${ ECHO_MSG } " ===> ${ PKGNAME } ${ IGNORE } . "
. e n d i f
fetch :
@${ IGNORECMD }
checksum :
@${ IGNORECMD }
extract :
@${ IGNORECMD }
patch :
@${ IGNORECMD }
configure :
@${ IGNORECMD }
all :
@${ IGNORECMD }
build :
@${ IGNORECMD }
install :
@${ IGNORECMD }
1998-02-17 16:07:02 +01:00
deinstall :
@${ IGNORECMD }
1997-08-20 12:21:05 +02:00
package :
@${ IGNORECMD }
1998-01-25 15:46:10 +01:00
. e n d i f # IGNORE
. e n d i f # !NO_IGNORE
. i f ! d e f i n e d ( _ _ A R C H _ O K )
.MAIN : all
1998-03-08 15:25:52 +01:00
fetch fetch-list extract patch configure build install reinstall package checkpatch checksum makesum all :
1998-01-25 15:46:10 +01:00
@echo " This port is only for ${ ONLY_FOR_ARCHS } , "
@echo " and you are running ${ MACHINE_ARCH } . "
. e l s e
1997-08-20 12:21:05 +02:00
. i f d e f i n e d ( A L L _ H O O K )
all :
@cd ${ .CURDIR } && ${ SETENV } CURDIR = ${ .CURDIR } DISTNAME = ${ DISTNAME } \
DISTDIR = ${ DISTDIR } WRKDIR = ${ WRKDIR } WRKSRC = ${ WRKSRC } \
PATCHDIR = ${ PATCHDIR } SCRIPTDIR = ${ SCRIPTDIR } \
1998-05-07 19:21:13 +02:00
FILESDIR = ${ FILESDIR } PKGSRCDIR = ${ PKGSRCDIR } PREFIX = ${ PREFIX } \
1997-08-20 12:21:05 +02:00
DEPENDS = " ${ DEPENDS } " BUILD_DEPENDS = " ${ BUILD_DEPENDS } " \
1998-06-05 13:23:09 +02:00
RUN_DEPENDS = " ${ RUN_DEPENDS } " CONFLICTS = " ${ CONFLICTS } " X11BASE = ${ X11BASE } \
1997-08-20 12:21:05 +02:00
${ ALL_HOOK }
. e n d i f
. i f ! t a r g e t ( a l l )
all : build
. e n d i f
. i f ! d e f i n e d ( D E P E N D S _ T A R G E T )
1997-09-28 02:44:15 +02:00
. i f m a k e ( r e i n s t a l l )
DEPENDS_TARGET = reinstall
. e l s e
1997-08-20 12:21:05 +02:00
DEPENDS_TARGET = install
. e n d i f
1997-09-28 02:44:15 +02:00
. e n d i f
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
# group of ports in a Makefile.inc, but still be able to
# override from an individual Makefile.
################################################################
# Disable checksum
1998-06-02 17:47:06 +02:00
. i f ( d e f i n e d ( N O _ C H E C K S U M ) & & ! t a r g e t ( c h e c k s u m ) ) | | e x i s t s ( $ { E X T R A C T _ C O O K I E } )
1997-08-20 12:21:05 +02:00
checksum : fetch
@${ DO_NADA }
. e n d i f
# Disable extract
. i f d e f i n e d ( N O _ E X T R A C T ) & & ! t a r g e t ( e x t r a c t )
extract : checksum
@${ TOUCH } ${ TOUCH_FLAGS } ${ EXTRACT_COOKIE }
checksum : fetch
@${ DO_NADA }
makesum :
@${ DO_NADA }
. e n d i f
# Disable patch
. i f d e f i n e d ( N O _ P A T C H ) & & ! t a r g e t ( p a t c h )
patch : extract
@${ TOUCH } ${ TOUCH_FLAGS } ${ PATCH_COOKIE }
. e n d i f
# Disable configure
. i f d e f i n e d ( N O _ C O N F I G U R E ) & & ! t a r g e t ( c o n f i g u r e )
configure : patch
@${ TOUCH } ${ TOUCH_FLAGS } ${ CONFIGURE_COOKIE }
. e n d i f
# Disable build
. i f d e f i n e d ( N O _ B U I L D ) & & ! t a r g e t ( b u i l d )
build : configure
@${ TOUCH } ${ TOUCH_FLAGS } ${ BUILD_COOKIE }
. e n d i f
# Disable install
. i f d e f i n e d ( N O _ I N S T A L L ) & & ! t a r g e t ( i n s t a l l )
install : build
@${ TOUCH } ${ TOUCH_FLAGS } ${ INSTALL_COOKIE }
. e n d i f
# Disable package
. i f d e f i n e d ( N O _ P A C K A G E ) & & ! t a r g e t ( p a c k a g e )
package :
. i f d e f i n e d ( I G N O R E _ S I L E N T )
@${ DO_NADA }
. e l s e
@${ ECHO_MSG } " ===> ${ PKGNAME } may not be packaged: ${ NO_PACKAGE } . "
. e n d i f
. e n d i f
# Disable describe
. i f d e f i n e d ( N O _ D E S C R I B E ) & & ! t a r g e t ( d e s c r i b e )
describe :
@${ DO_NADA }
. e n d i f
################################################################
# 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
. i f ! t a r g e t ( d o - f e t c h )
do-fetch :
@${ MKDIR } ${ _DISTDIR }
@( cd ${ _DISTDIR } ; \
for file in ${ DISTFILES } ; do \
if [ ! -f $$ file -a ! -f ` ${ BASENAME } $$ file` ] ; then \
if [ -h $$ file -o -h ` ${ BASENAME } $$ file` ] ; then \
${ ECHO_MSG } " >> ${ _DISTDIR } / $$ file is a broken symlink. " ; \
${ ECHO_MSG } ">> Perhaps a filesystem (most likely a CD) isn't mounted?" ; \
${ ECHO_MSG } ">> Please correct this problem and try again." ; \
exit 1; \
fi ; \
${ ECHO_MSG } " >> $$ file doesn't seem to exist on this system. " ; \
for site in ${ MASTER_SITES } ; do \
1998-07-27 13:17:51 +02:00
${ ECHO_MSG } " >> Attempting to fetch $$ file from $$ {site}. " ; \
1997-08-20 12:21:05 +02:00
if ${ FETCH_CMD } ${ FETCH_BEFORE_ARGS } $$ { site} $$ { file} ${ FETCH_AFTER_ARGS } ; then \
1998-07-27 13:17:51 +02:00
if [ -f ${ MD5_FILE } ] ; then \
CKSUM = ` ${ MD5 } < ${ DISTDIR } /$$ file` ; \
CKSUM2 = ` ${ AWK } '$$1 == "MD5" && $$2 == "\(' $$ file'\)"{print $$4;}' ${ MD5_FILE } ` ; \
if [ " $$ CKSUM " = " $$ CKSUM2 " -o " $$ CKSUM2 " = "IGNORE" ] ; then \
continue 2; \
else \
${ ECHO_MSG } ">> Checksum failure - trying next site." ; \
fi ; \
else \
continue 2; \
fi ; \
1997-08-20 12:21:05 +02:00
fi \
done ; \
${ ECHO_MSG } ">> Couldn't fetch it - please try to retrieve this" ; \
${ ECHO_MSG } " >> port manually into ${ _DISTDIR } and try again. " ; \
exit 1; \
1998-06-05 14:45:53 +02:00
fi \
1997-08-20 12:21:05 +02:00
done )
. i f d e f i n e d ( P A T C H F I L E S )
@( cd ${ _DISTDIR } ; \
for file in ${ PATCHFILES } ; do \
if [ ! -f $$ file -a ! -f ` ${ BASENAME } $$ file` ] ; then \
if [ -h $$ file -o -h ` ${ BASENAME } $$ file` ] ; then \
${ ECHO_MSG } " >> ${ _DISTDIR } / $$ file is a broken symlink. " ; \
${ ECHO_MSG } ">> Perhaps a filesystem (most likely a CD) isn't mounted?" ; \
${ ECHO_MSG } ">> Please correct this problem and try again." ; \
exit 1; \
fi ; \
${ ECHO_MSG } " >> $$ file doesn't seem to exist on this system. " ; \
for site in ${ PATCH_SITES } ; do \
${ ECHO_MSG } " >> Attempting to fetch from $$ {site}. " ; \
if ${ FETCH_CMD } ${ FETCH_BEFORE_ARGS } $$ { site} $$ { file} ${ FETCH_AFTER_ARGS } ; then \
continue 2; \
fi \
done ; \
${ ECHO_MSG } ">> Couldn't fetch it - please try to retrieve this" ; \
${ ECHO_MSG } " >> port manually into ${ _DISTDIR } and try again. " ; \
exit 1; \
1998-06-05 14:45:53 +02:00
fi \
1997-08-20 12:21:05 +02:00
done )
. e n d i f
. e n d i f
1998-01-22 11:20:48 +01: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
1998-01-27 14:14:07 +01:00
mirror-distfiles :
1998-01-22 11:20:48 +01:00
. i f (${MIRROR_DISTFILE} = = "yes" )
1998-04-19 14:48:07 +02:00
@${ MAKE } fetch __ARCH_OK = yes NO_IGNORE = yes
1998-01-22 11:20:48 +01:00
. e n d i f
1997-08-20 12:21:05 +02:00
# Extract
. i f ! t a r g e t ( d o - e x t r a c t )
do-extract :
. i f ! d e f i n e d ( N O _ W R K D I R )
1997-09-28 02:44:15 +02:00
. i f d e f i n e d ( W R K O B J D I R )
1998-07-03 21:27:39 +02:00
@${ RM } -rf ${ WRKOBJDIR } /${ PORTSUBDIR } /${ WRKDIR_BASENAME }
@${ MKDIR } -p ${ WRKOBJDIR } /${ PORTSUBDIR } /${ WRKDIR_BASENAME }
@echo " ${ WRKDIR } -> ${ WRKOBJDIR } / ${ PORTSUBDIR } / ${ WRKDIR_BASENAME } "
1997-09-28 02:44:15 +02:00
@# XXX whatif a build is going on right now? Is this wise?
1998-07-03 21:27:39 +02:00
@${ LN } -sf ${ WRKOBJDIR } /${ PORTSUBDIR } /${ WRKDIR_BASENAME } ${ WRKDIR }
1997-09-28 02:44:15 +02:00
. e l s e
1997-08-20 12:21:05 +02:00
@${ RM } -rf ${ WRKDIR }
@${ MKDIR } ${ WRKDIR }
1997-09-28 02:44:15 +02:00
. e n d i f
1997-08-20 12:21:05 +02:00
. e n d i f
@for file in ${ EXTRACT_ONLY } ; do \
if ! ( cd ${ WRKDIR } && ${ EXTRACT_CMD } ${ EXTRACT_BEFORE_ARGS } ${ _DISTDIR } /$$ file ${ EXTRACT_AFTER_ARGS } ) ; \
then \
exit 1; \
fi \
done
. e n d i f
# Patch
. i f ! t a r g e t ( d o - p a t c h )
do-patch :
. i f d e f i n e d ( P A T C H F I L E S )
@${ ECHO_MSG } " ===> Applying distribution patches for ${ PKGNAME } "
@( cd ${ _DISTDIR } ; \
for i in ${ PATCHFILES } ; do \
if [ ${ PATCH_DEBUG_TMP } = yes ] ; then \
${ ECHO_MSG } " ===> Applying distribution patch $$ i " ; \
fi ; \
case $$ i in \
*.Z| *.gz) \
${ GZCAT } $$ i | ${ PATCH } ${ PATCH_DIST_ARGS } ; \
; ; \
*) \
${ PATCH } ${ PATCH_DIST_ARGS } < $$ i; \
; ; \
esac ; \
done )
. e n d i f
@if [ -d ${ PATCHDIR } ] ; then \
if [ " `echo ${ PATCHDIR } /patch-*` " = " ${ PATCHDIR } /patch-* " ] ; then \
${ ECHO_MSG } "===> Ignoring empty patch directory" ; \
if [ -d ${ PATCHDIR } /CVS ] ; then \
${ ECHO_MSG } "===> Perhaps you forgot the -P flag to cvs co or update?" ; \
fi ; \
else \
${ ECHO_MSG } " ===> Applying ${ OPSYS } patches for ${ PKGNAME } " ; \
for i in ${ PATCHDIR } /patch-*; do \
case $$ i in \
*.orig| *.rej| *~) \
${ ECHO_MSG } " ===> Ignoring patchfile $$ i " ; \
; ; \
*) \
if [ ${ PATCH_DEBUG_TMP } = yes ] ; then \
${ ECHO_MSG } " ===> Applying ${ OPSYS } patch $$ i " ; \
fi ; \
${ PATCH } ${ PATCH_ARGS } < $$ i; \
; ; \
esac ; \
done ; \
fi ; \
fi
. e n d i f
# Configure
. i f ! t a r g e t ( d o - c o n f i g u r e )
do-configure :
@if [ -f ${ SCRIPTDIR } /configure ] ; then \
cd ${ .CURDIR } && ${ SETENV } ${ SCRIPTS_ENV } ${ SH } \
${ SCRIPTDIR } /configure; \
fi
. i f d e f i n e d ( H A S _ C O N F I G U R E )
@( cd ${ WRKSRC } && CC = " ${ CC } " ac_cv_path_CC = " ${ CC } " CFLAGS = " ${ CFLAGS } " \
INSTALL = " /usr/bin/install -c -o ${ BINOWN } -g ${ BINGRP } " \
INSTALL_PROGRAM = " ${ INSTALL_PROGRAM } " \
${ CONFIGURE_ENV } ./${ CONFIGURE_SCRIPT } ${ CONFIGURE_ARGS } )
. e n d i f
. i f d e f i n e d ( U S E _ I M A K E )
1998-04-21 17:50:27 +02:00
@( cd ${ WRKSRC } && ${ SETENV } ${ SCRIPTS_ENV } XPROJECTROOT = ${ X11BASE } ${ XMKMF } )
1997-08-20 12:21:05 +02:00
. e n d i f
. e n d i f
# Build
. i f ! t a r g e t ( d o - b u i l d )
do-build :
1998-06-10 10:02:08 +02:00
@( cd ${ WRKSRC } ; ${ SETENV } ${ MAKE_ENV } ${ MAKE_PROGRAM } ${ MAKE_FLAGS } -f ${ MAKEFILE } ${ ALL_TARGET } )
1997-08-20 12:21:05 +02:00
. e n d i f
# Install
. i f ! t a r g e t ( d o - i n s t a l l )
do-install :
1998-06-10 10:02:08 +02:00
@( cd ${ WRKSRC } && ${ SETENV } ${ MAKE_ENV } ${ MAKE_PROGRAM } ${ MAKE_FLAGS } -f ${ MAKEFILE } ${ INSTALL_TARGET } )
1998-04-17 11:37:21 +02:00
@for f in ${ INFO_FILES } ; do \
1998-04-22 19:29:10 +02:00
${ ECHO } " ${ LOCALBASE } /bin/install-info --info-dir= ${ PREFIX } /info ${ PREFIX } /info/ $$ f " ; \
${ LOCALBASE } /bin/install-info --info-dir= ${ PREFIX } /info ${ PREFIX } /info/$$ f; \
1998-04-17 11:37:21 +02:00
done
1997-08-20 12:21:05 +02:00
. e n d i f
# Package
. i f ! t a r g e t ( d o - p a c k a g e )
1997-10-07 02:30:31 +02:00
do-package : ${PLIST }
1997-08-20 12:21:05 +02:00
@if [ -e ${ PLIST } ] ; then \
${ ECHO_MSG } " ===> Building package for ${ PKGNAME } " ; \
if [ -d ${ PACKAGES } ] ; then \
if [ ! -d ${ PKGREPOSITORY } ] ; then \
if ! ${ MKDIR } ${ PKGREPOSITORY } ; then \
${ ECHO_MSG } " >> Can't create directory ${ PKGREPOSITORY } . " ; \
exit 1; \
fi ; \
fi ; \
fi ; \
if ${ PKG_CMD } ${ PKG_ARGS } ${ PKGFILE } ; then \
if [ -d ${ PACKAGES } ] ; then \
${ MAKE } ${ .MAKEFLAGS } package-links; \
fi ; \
else \
${ MAKE } ${ .MAKEFLAGS } delete-package; \
exit 1; \
fi ; \
fi
. e n d i f
# Some support rules for do-package
. i f ! t a r g e t ( p a c k a g e - l i n k s )
package-links :
@${ MAKE } ${ .MAKEFLAGS } delete-package-links
@for cat in ${ CATEGORIES } ; do \
if [ ! -d ${ PACKAGES } /$$ cat ] ; then \
if ! ${ MKDIR } ${ PACKAGES } /$$ cat; then \
${ ECHO_MSG } " >> Can't create directory ${ PACKAGES } / $$ cat. " ; \
exit 1; \
fi ; \
fi ; \
ln -s ../${ PKGREPOSITORYSUBDIR } /${ PKGNAME } ${ PKG_SUFX } ${ PACKAGES } /$$ cat; \
done ;
. e n d i f
. i f ! t a r g e t ( d e l e t e - p a c k a g e - l i n k s )
delete-package-links :
@${ RM } -f ${ PACKAGES } /[ a-z] */${ PKGNAME } ${ PKG_SUFX } ;
. e n d i f
. i f ! t a r g e t ( d e l e t e - p a c k a g e )
delete-package :
@${ MAKE } ${ .MAKEFLAGS } delete-package-links
@${ RM } -f ${ PKGFILE }
. e n d i f
1998-06-18 13:45:33 +02:00
# Set the PLIST_SRC definition, if necessary
. i f ! d e f i n e d ( P L I S T _ S R C )
. i f e x i s t s ( $ { P K G D I R } / P L I S T )
PLIST_SRC = ${ PKGDIR } /PLIST
. e l i f e x i s t s ( $ { P K G D I R } / P L I S T - m i ) & & \
exists( ${ PKGDIR } /PLIST-md.shared) && \
exists( ${ PKGDIR } /PLIST-md.static)
PLIST_SRC = ${ PKGDIR } /PLIST-mi
. i f ${MACHINE_ARCH} = = "powerpc" || ${ MACHINE_ARCH } = = "mips" || ${ MACHINE_ARCH } = = "alpha"
# XXX this is mostly for perl; alpha can be removed once perl knows
# how to do dynamic loading - hubertf
PLIST_SRC += ${ PKGDIR } /PLIST-md.static
. e l s e
PLIST_SRC += ${ PKGDIR } /PLIST-md.shared
. e n d i f # powerpc || mips || alpha
. e l s e # no PLIST at all
PLIST_SRC =
. e n d i f # ${PKGDIR}/PLIST
. e n d i f # !PLIST_SRC
1997-08-20 12:21:05 +02:00
################################################################
# This is the "generic" port target, actually a macro used from the
# six main targets. See below for more.
################################################################
_PORT_USE : .USE
. i f m a k e ( r e a l - f e t c h )
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } fetch-depends
. e n d i f
. i f m a k e ( r e a l - e x t r a c t )
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } build-depends lib-depends misc-depends
. e n d i f
. i f m a k e ( r e a l - i n s t a l l )
. i f ! d e f i n e d ( N O _ P K G _ R E G I S T E R ) & & ! d e f i n e d ( F O R C E _ P K G _ R E G I S T E R )
1998-06-05 13:23:09 +02:00
. i f d e f i n e d ( C O N F L I C T S )
1998-08-04 17:05:38 +02:00
@( /bin/sh -f -c ' for i in ${ CONFLICTS } ; do \
1998-07-09 19:47:03 +02:00
if /usr/sbin/pkg_info -e " $$ i " >${ WRKDIR } /.CONFLICT.$$ $$ ; then \
1998-08-04 17:05:38 +02:00
${ ECHO_MSG } " ===> ${ PKGNAME } conflicts with installed package: $$ i - " ` ${ CAT } ${ WRKDIR } /.CONFLICT.$$ $$ ` " found." ; \
${ ECHO_MSG } " They install the same files into the same place." ; \
${ ECHO_MSG } " Please remove " ` ${ CAT } ${ WRKDIR } /.CONFLICT.$$ $$ ` " first with pkg_delete(1)." ; \
1998-06-05 13:23:09 +02:00
exit 1; \
fi ; \
1998-07-10 07:24:19 +02:00
${ RM } ${ WRKDIR } /.CONFLICT.$$ $$ ; \
1998-08-04 17:05:38 +02:00
done ' )
1998-06-05 13:23:09 +02:00
. e n d i f
1997-08-20 12:21:05 +02:00
@if [ -d ${ PKG_DBDIR } /${ PKGNAME } ] ; then \
${ ECHO_MSG } " ===> ${ PKGNAME } is already installed - perhaps an older version? " ; \
1998-04-19 14:48:07 +02:00
${ ECHO_MSG } " If so, you may wish to \`\` ${ MAKE } deinstall'' and install " ; \
${ ECHO_MSG } " this port again by \`\` ${ MAKE } reinstall'' to upgrade it properly. " ; \
1997-08-20 12:21:05 +02:00
${ ECHO_MSG } " If you really wish to overwrite the old port of ${ PKGNAME } " ; \
${ ECHO_MSG } " without deleting it first, set the variable \"FORCE_PKG_REGISTER\"" ; \
1998-04-19 14:48:07 +02:00
${ ECHO_MSG } " in your environment or the \" ${ MAKE } install\" command line. " ; \
1997-08-20 12:21:05 +02:00
exit 1; \
fi
. e n d i f
1997-09-28 02:44:15 +02:00
@if [ ` ${ SH } -c umask ` != ${ DEF_UMASK } ] ; then \
1997-08-20 12:21:05 +02:00
${ ECHO_MSG } " ===> Warning: your umask is \"` ${ SH } -c umask` " \" .; \
${ ECHO_MSG } " If this is not desired, set it to an appropriate value" ; \
1998-04-19 14:48:07 +02:00
${ ECHO_MSG } " and install this port again by \`\` ${ MAKE } reinstall''. " ; \
1997-08-20 12:21:05 +02:00
fi
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } run-depends lib-depends
. e n d i f
. i f m a k e ( r e a l - i n s t a l l )
. i f ! d e f i n e d ( N O _ M T R E E )
@if [ ` id -u` = 0 ] ; then \
1997-09-28 02:44:15 +02:00
if [ ! -f ${ MTREE_FILE } ] ; then \
${ ECHO_MSG } " Error: mtree file \" ${ MTREE_FILE } \" is missing. " ; \
${ ECHO_MSG } "Copy it from a suitable location (e.g., /usr/src/etc/mtree) and try again." ; \
exit 1; \
else \
1997-10-17 03:40:49 +02:00
if [ ! -d ${ PREFIX } ] ; then \
mkdir -p ${ PREFIX } ; \
fi ; \
1997-09-28 02:44:15 +02:00
${ MTREE_CMD } ${ MTREE_ARGS } ${ PREFIX } /; \
fi ; \
1997-08-20 12:21:05 +02:00
else \
${ ECHO_MSG } "Warning: not superuser, can't run mtree." ; \
${ ECHO_MSG } "Become root and try again to ensure correct permissions." ; \
fi
. e n d i f
. e n d i f
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } ${ .TARGET : S /^real-/pre-/ }
@if [ -f ${ SCRIPTDIR } /${ .TARGET : S /^real-/pre-/ } ] ; then \
cd ${ .CURDIR } && ${ SETENV } ${ SCRIPTS_ENV } ${ SH } \
${ SCRIPTDIR } /${ .TARGET : S /^real-/pre-/ } ; \
fi
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } ${ .TARGET : S /^real-/do-/ }
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } ${ .TARGET : S /^real-/post-/ }
@if [ -f ${ SCRIPTDIR } /${ .TARGET : S /^real-/post-/ } ] ; then \
cd ${ .CURDIR } && ${ SETENV } ${ SCRIPTS_ENV } ${ SH } \
${ SCRIPTDIR } /${ .TARGET : S /^real-/post-/ } ; \
fi
1998-06-18 13:45:33 +02:00
. i f m a k e ( r e a l - i n s t a l l )
1998-06-23 12:35:56 +02:00
@( newmanpages = ` /usr/bin/egrep -h \
1998-06-22 11:12:48 +02:00
'^([^/]*/)*man/([^/]*/)?(man[1-9ln]/.*\.[1-9ln]|cat[1-9ln]/.*\.0)(\.gz)?$$' \
${ PLIST_SRC } || /usr/bin/true` ; \
1998-06-18 13:45:33 +02:00
if [ X" ${ MANCOMPRESSED } " != X"" -a X" ${ MANZ } " = X"" ] ; then \
${ ECHO_MSG } "===> [Automatic manual page handling]" ; \
${ ECHO_MSG } " ===> 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$$||' ` ; \
${ GUNZIP_CMD } ${ PREFIX } /$$ manpage.gz; \
if [ X" ${ PKG_VERBOSE } " != X"" ] ; then \
${ ECHO_MSG } " $$ manpage " ; \
fi ; \
done ; \
fi ; \
if [ X" ${ MANCOMPRESSED } " = X"" -a X" ${ MANZ } " != X"" ] ; then \
${ ECHO_MSG } "===> [Automatic manual page handling]" ; \
${ ECHO_MSG } " ===> 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$$||' ` ; \
if [ -L ${ PREFIX } /$$ manpage ] ; then \
set - ` ${ FILE } ${ PREFIX } /$$ manpage` ; \
shift ` expr $$ # - 1`; \
${ LN } -sf $$ { 1} .gz ${ PREFIX } /$$ manpage.gz; \
${ RM } ${ PREFIX } /$$ manpage; \
else \
${ GZIP_CMD } ${ PREFIX } /$$ manpage; \
fi ; \
if [ X" ${ PKG_VERBOSE } " != X"" ] ; then \
${ ECHO_MSG } " $$ manpage " ; \
fi ; \
done ; \
fi )
1998-07-14 13:36:11 +02:00
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } ${ PLIST }
@( sos = ` /usr/bin/egrep -h \
'^([^/]*/)*lib/lib[^.]+\.so\.[0-9]+\.[0-9]+$$' \
${ PLIST } || /usr/bin/true` ; \
if [ X" $$ sos " != X"" ] ; then \
1998-07-14 17:53:54 +02:00
case ${ SHLIB_TYPE } in \
"ELF" ) \
${ ECHO_MSG } " ===> [Automatic ${ SHLIB_TYPE } shared object handling] " ; \
1998-07-14 13:36:11 +02:00
for so in $$ sos; do \
1998-07-24 16:13:46 +02:00
so1 = ` ${ ECHO } $$ so | ${ SED } -e 's|\.[0-9]*$$||' ` ; \
so2 = ` ${ ECHO } $$ so1 | ${ SED } -e 's|\.[0-9]*$$||' ` ; \
case ` ${ GREP } -c " ^ $$ so2 $$ " ${ PLIST } ` in \
1998-07-14 13:36:11 +02:00
0) \
${ SED } -e " s|^ $$ so $$ |&! $$ so2| " -e 'y|!|\n|' ${ PLIST } > ${ PLIST } .tmp && ${ MV } ${ PLIST } .tmp ${ PLIST } ; \
${ ECHO_MSG } " ${ LN } -sf ${ PREFIX } / $$ so ${ PREFIX } / $$ so2 " ; \
${ LN } -sf ${ PREFIX } /$$ so ${ PREFIX } /$$ so2; \
; ; \
esac ; \
1998-07-24 16:13:46 +02:00
case ` ${ GREP } -c " ^ $$ so1 $$ " ${ PLIST } ` in \
1998-07-14 13:36:11 +02:00
0) \
${ SED } -e " s|^ $$ so $$ |&! $$ so1| " -e 'y|!|\n|' ${ PLIST } > ${ PLIST } .tmp && ${ MV } ${ PLIST } .tmp ${ PLIST } ; \
${ ECHO_MSG } " ${ LN } -sf ${ PREFIX } / $$ so ${ PREFIX } / $$ so1 " ; \
1998-07-24 16:13:46 +02:00
${ LN } -sf ${ PREFIX } /$$ so ${ PREFIX } /$$ so1; \
1998-07-14 13:36:11 +02:00
; ; \
esac ; \
if [ X" ${ PKG_VERBOSE } " != X"" ] ; then \
${ ECHO_MSG } " $$ so " ; \
fi ; \
done \
1998-07-14 17:53:54 +02:00
; ; \
"a.out" ) \
${ ECHO_MSG } " ===> [Automatic ${ SHLIB_TYPE } shared object handling] " ; \
1998-07-24 16:13:46 +02:00
case ` ${ GREP } -c '^@exec ${LDCONFIG}$$' ${ PLIST } ` in \
1998-07-14 13:36:11 +02:00
0) \
1998-07-24 16:13:46 +02:00
${ ECHO } " @exec ${ LDCONFIG } " >> ${ PLIST } ; \
${ ECHO } " @unexec ${ LDCONFIG } " >> ${ PLIST } ; \
1998-07-14 13:36:11 +02:00
; ; \
esac ; \
if [ X" ${ PKG_VERBOSE } " != X"" ] ; then \
1998-07-14 17:53:54 +02:00
${ ECHO_MSG } " $$ sos " ; \
1998-07-24 16:13:46 +02:00
${ ECHO_MSG } " Running ${ LDCONFIG } " ; \
1998-07-14 13:36:11 +02:00
fi ; \
${ LDCONFIG } ; \
1998-07-14 17:53:54 +02:00
; ; \
*) \
${ ECHO_MSG } " No shared libraries for ${ MACHINE_ARCH } " ; \
1998-07-14 18:48:48 +02:00
for so in $$ sos; do \
${ SED } -e " s|^ $$ so $$ |@comment No shared objects - &| " ${ PLIST } > ${ PLIST } .tmp && \
${ MV } ${ PLIST } .tmp ${ PLIST } ; \
done ; \
1998-07-14 17:53:54 +02:00
; ; \
esac ; \
1998-07-14 13:36:11 +02:00
fi )
1998-07-14 12:56:15 +02:00
. i f e x i s t s ( $ { P K G D I R } / M E S S A G E )
@${ ECHO_MSG } "===> Please note the following:"
@${ CAT } ${ PKGDIR } /MESSAGE
. e n d i f
1998-06-18 13:45:33 +02:00
. i f ! d e f i n e d ( N O _ P K G _ R E G I S T E R )
1997-08-20 12:21:05 +02:00
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } fake-pkg
1998-06-18 13:45:33 +02:00
. e n d i f # NO_PKG_REGISTER
1997-08-20 12:21:05 +02:00
. e n d i f
. i f ! m a k e ( r e a l - f e t c h ) \
&& ( !make( real-patch) || !defined( PATCH_CHECK_ONLY) ) \
&& ( !make( real-package) || !defined( PACKAGE_NOINSTALL) )
@${ TOUCH } ${ TOUCH_FLAGS } ${ WRKDIR } /.${ .TARGET : S /^real-// } _done
. e n d i f
################################################################
# 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.
################################################################
. i f ! t a r g e t ( f e t c h )
fetch :
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } real-fetch
. e n d i f
. i f ! t a r g e t ( e x t r a c t )
extract : checksum ${EXTRACT_COOKIE }
. e n d i f
. i f ! t a r g e t ( p a t c h )
patch : extract ${PATCH_COOKIE }
. e n d i f
. i f ! t a r g e t ( c o n f i g u r e )
configure : patch ${CONFIGURE_COOKIE }
. e n d i f
. i f ! t a r g e t ( b u i l d )
build : configure ${BUILD_COOKIE }
. e n d i f
. i f ! t a r g e t ( i n s t a l l )
install : build ${INSTALL_COOKIE }
. e n d i f
. i f ! t a r g e t ( p a c k a g e )
package : install ${PACKAGE_COOKIE }
. e n d i f
${EXTRACT_COOKIE} :
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } real-extract
${PATCH_COOKIE} :
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } real-patch
${CONFIGURE_COOKIE} :
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } real-configure
${BUILD_COOKIE} :
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } real-build
${INSTALL_COOKIE} :
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } real-install
${PACKAGE_COOKIE} :
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } real-package
# And call the macros
real-fetch : _PORT_USE
real-extract : _PORT_USE
@${ ECHO_MSG } " ===> Extracting for ${ PKGNAME } "
real-patch : _PORT_USE
@${ ECHO_MSG } " ===> Patching for ${ PKGNAME } "
real-configure : _PORT_USE
@${ ECHO_MSG } " ===> Configuring for ${ PKGNAME } "
real-build : _PORT_USE
@${ ECHO_MSG } " ===> Building for ${ PKGNAME } "
real-install : _PORT_USE
@${ ECHO_MSG } " ===> Installing for ${ PKGNAME } "
real-package : _PORT_USE
# Empty pre-* and post-* targets, note we can't use .if !target()
# in the _PORT_USE macro
. f o r n a m e i n f e t c h e x t r a c t p a t c h c o n f i g u r e b u i l d i n s t a l l p a c k a g e
. i f ! t a r g e t ( p r e - $ { n a m e } )
pre-${name} :
@${ DO_NADA }
. e n d i f
. i f ! t a r g e t ( p o s t - $ { n a m e } )
post-${name} :
@${ DO_NADA }
. e n d i f
. e n d f o r
# Checkpatch
#
# Special target to verify patches
. i f ! t a r g e t ( c h e c k p a t c h )
checkpatch :
@cd ${ .CURDIR } && ${ MAKE } PATCH_CHECK_ONLY = yes ${ .MAKEFLAGS } patch
. e n d i f
# Reinstall
#
# Special target to re-run install
. i f ! t a r g e t ( r e i n s t a l l )
reinstall :
@${ RM } -f ${ INSTALL_COOKIE } ${ PACKAGE_COOKIE }
1997-09-28 02:44:15 +02:00
@DEPENDS_TARGET= ${ DEPENDS_TARGET } ${ MAKE } install
1997-08-20 12:21:05 +02:00
. e n d i f
1998-02-17 16:07:02 +01:00
# Deinstall
#
# Special target to remove installation
. i f ! t a r g e t ( d e i n s t a l l )
deinstall :
@${ ECHO_MSG } " ===> Deinstalling for ${ PKGNAME } "
1998-06-18 13:45:33 +02:00
. i f d e f P K G _ V E R B O S E
@pkg_delete -v -f ${ PKGNAME }
. e l s e
1998-02-17 16:07:02 +01:00
@pkg_delete -f ${ PKGNAME }
1998-06-18 13:45:33 +02:00
. e n d i f
1998-02-17 16:07:02 +01:00
@${ RM } -f ${ INSTALL_COOKIE } ${ PACKAGE_COOKIE }
. e n d i f
1998-01-15 23:58:59 +01:00
. e n d i f # __ARCH_OK
# The functions below may be useful even if _ARCH_OK is not set
1997-08-20 12:21:05 +02:00
################################################################
# Some more targets supplied for users' convenience
################################################################
# Cleaning up
. i f ! t a r g e t ( p r e - c l e a n )
pre-clean :
@${ DO_NADA }
. e n d i f
. i f ! t a r g e t ( c l e a n )
clean : pre -clean
. i f ! d e f i n e d ( N O C L E A N D E P E N D S )
@${ MAKE } clean-depends
. e n d i f
@${ ECHO_MSG } " ===> Cleaning for ${ PKGNAME } "
. i f ! d e f i n e d ( N O _ W R K D I R )
1997-09-28 13:22:40 +02:00
. i f d e f i n e d ( W R K O B J D I R )
@${ RM } -rf ${ WRKOBJDIR } /${ PORTSUBDIR }
1998-01-22 12:27:54 +01:00
@${ RM } -f ${ WRKDIR }
1997-09-28 13:22:40 +02:00
. e l s e
1997-08-20 12:21:05 +02:00
@if [ -d ${ WRKDIR } ] ; then \
if [ -w ${ WRKDIR } ] ; then \
${ RM } -rf ${ WRKDIR } ; \
else \
${ ECHO_MSG } " ===> ${ WRKDIR } not writable, skipping " ; \
fi ; \
fi
1997-09-28 13:22:40 +02:00
. e n d i f
1997-08-20 12:21:05 +02:00
. e l s e
@${ RM } -f ${ WRKDIR } /.*_done
. e n d i f
. e n d i f
. i f ! t a r g e t ( p r e - d i s t c l e a n )
pre-distclean :
@${ DO_NADA }
. e n d i f
. i f ! t a r g e t ( d i s t c l e a n )
distclean : pre -distclean clean
@${ ECHO_MSG } " ===> Dist cleaning for ${ PKGNAME } "
@( if [ -d ${ _DISTDIR } ] ; then \
cd ${ _DISTDIR } ; \
${ RM } -f ${ DISTFILES } ${ PATCHFILES } ; \
fi )
. i f d e f i n e d ( D I S T _ S U B D I R )
-@${ RMDIR } ${ _DISTDIR }
. e n d i f
. e n d i f
# 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
. i f d e f ( _ T H I S D I R _ )
1998-02-20 22:31:20 +01:00
RECURSIVE_FETCH_LIST ?= NO
. e l s e
RECURSIVE_FETCH_LIST ?= YES
. e n d i f
1997-08-20 12:21:05 +02:00
. i f ! t a r g e t ( f e t c h - l i s t )
fetch-list :
1998-02-20 22:31:20 +01:00
@${ MAKE } fetch-list-recursive RECURSIVE_FETCH_LIST = ${ RECURSIVE_FETCH_LIST } | sort -u
. e n d i f # !target(fetch-list)
. i f ! t a r g e t ( f e t c h - l i s t - r e c u r s i v e )
fetch-list-recursive :
@${ MAKE } fetch-list-one-pkg
. i f ${RECURSIVE_FETCH_LIST} != "NO"
1998-04-22 16:22:39 +02:00
@for dir in ` ${ ECHO } ${ FETCH_DEPENDS } ${ BUILD_DEPENDS } ${ LIB_DEPENDS } ${ DEPENDS } ${ RUN_DEPENDS } | ${ TR } '\040' '\012' | ${ SED } -e 's/^[^:]*://' -e 's/:.*//' | sort -u` ; do \
1998-02-20 22:31:20 +01:00
( cd $$ dir; ${ MAKE } fetch-list-recursive; ) ; \
done
. e n d i f # ${RECURSIVE_FETCH_LIST} != "NO"
. e n d i f # !target(fetch-list-recursive)
. i f ! t a r g e t ( f e t c h - l i s t - o n e - p k g )
fetch-list-one-pkg :
1998-02-28 17:02:21 +01:00
@${ MKDIR } ${ _DISTDIR }
@[ -z " ${ _DISTDIR } " ] || ${ ECHO } " ${ MKDIR } ${ _DISTDIR } "
@( cd ${ _DISTDIR } ; \
for file in ${ DISTFILES } ; do \
1997-08-20 12:21:05 +02:00
if [ ! -f $$ file -a ! -f ` ${ BASENAME } $$ file` ] ; then \
1998-02-28 17:02:21 +01:00
${ ECHO } -n " cd ${ _DISTDIR } && [ -f $$ file -o -f ` ${ BASENAME } $$ file` ] || " ; \
1998-02-20 22:31:20 +01:00
for site in ${ MASTER_SITES } ; do \
${ ECHO } -n ${ FETCH_CMD } ${ FETCH_BEFORE_ARGS } $$ { site} $$ { file} " ${ FETCH_AFTER_ARGS } " '|| ' ; \
1997-08-20 12:21:05 +02:00
done ; \
${ ECHO } " echo $$ {file} not fetched " ; \
fi \
1998-02-28 17:02:21 +01:00
done )
1997-08-20 12:21:05 +02:00
. i f d e f i n e d ( P A T C H F I L E S )
@( cd ${ _DISTDIR } ; \
1998-02-20 22:31:20 +01:00
for file in ${ PATCHFILES } ; do \
1997-08-20 12:21:05 +02:00
if [ ! -f $$ file -a ! -f ` ${ BASENAME } $$ file` ] ; then \
1998-02-28 17:02:21 +01:00
${ ECHO } -n " cd ${ _DISTDIR } && [ -f $$ file -o -f ` ${ BASENAME } $$ file` ] || " ; \
1997-08-20 12:21:05 +02:00
for site in ${ PATCH_SITES } ; do \
1998-02-20 22:31:20 +01:00
${ ECHO } -n ${ FETCH_CMD } ${ FETCH_BEFORE_ARGS } $$ { site} $$ { file} " ${ FETCH_AFTER_ARGS } " '|| ' ; \
1997-08-20 12:21:05 +02:00
done ; \
${ ECHO } " echo $$ {file} not fetched " ; \
fi \
1998-02-20 22:31:20 +01:00
done )
. e n d i f # defined(PATCHFILES)
. e n d i f # !target(fetch-list-one-pkg)
1997-08-20 12:21:05 +02:00
# Checksumming utilities
. i f ! t a r g e t ( m a k e s u m )
makesum : fetch
@${ MKDIR } ${ FILESDIR }
@if [ -f ${ MD5_FILE } ] ; then ${ RM } -f ${ MD5_FILE } ; fi
@( cd ${ DISTDIR } ; \
for file in ${ _CKSUMFILES } ; do \
${ MD5 } $$ file >> ${ MD5_FILE } ; \
done )
@for file in ${ _IGNOREFILES } ; do \
${ ECHO } " MD5 ( $$ file) = IGNORE " >> ${ MD5_FILE } ; \
done
. e n d i f
. i f ! t a r g e t ( c h e c k s u m )
checksum : fetch
@if [ ! -f ${ MD5_FILE } ] ; then \
${ ECHO_MSG } ">> No MD5 checksum file." ; \
else \
( cd ${ DISTDIR } ; OK = "true" ; \
for file in ${ _CKSUMFILES } ; do \
CKSUM = ` ${ MD5 } < $$ file` ; \
1998-07-26 11:27:15 +02:00
CKSUM2 = ` ${ AWK } '$$1 == "MD5" && $$2 == "\(' $$ file'\)"{print $$4;}' ${ MD5_FILE } ` ; \
1997-08-20 12:21:05 +02:00
if [ " $$ CKSUM2 " = "" ] ; then \
${ ECHO_MSG } " >> No checksum recorded for $$ file. " ; \
OK = "false" ; \
elif [ " $$ CKSUM2 " = "IGNORE" ] ; then \
${ ECHO_MSG } " >> Checksum for $$ file is set to IGNORE in md5 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 ; \
done ; \
for file in ${ _IGNOREFILES } ; do \
1998-07-26 11:27:15 +02:00
CKSUM2 = ` ${ AWK } '$$1 == "MD5" && $$2 == "\(' $$ file'\)"{print $$4;}' ${ MD5_FILE } ` ; \
1997-08-20 12:21:05 +02:00
if [ " $$ CKSUM2 " = "" ] ; then \
${ ECHO_MSG } " >> No checksum recorded for $$ file, file is in " '$$' "{IGNOREFILES} list." ; \
OK = "false" ; \
elif [ " $$ CKSUM2 " != "IGNORE" ] ; then \
${ ECHO_MSG } " >> Checksum for $$ file is not set to IGNORE in md5 file even though " ; \
${ ECHO_MSG } " the file is in the " '$$' "{IGNOREFILES} list." ; \
OK = "false" ; \
fi ; \
done ; \
if [ " $$ OK " != "true" ] ; then \
${ ECHO_MSG } " Make sure the Makefile and md5 file ( ${ MD5_FILE } ) " ; \
${ 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]\". " ; \
1997-08-20 12:21:05 +02:00
exit 1; \
fi ) ; \
fi
. e n d i f
################################################################
# The special package-building targets
# You probably won't need to touch these
################################################################
1998-02-20 23:06:18 +01:00
HTMLIFY = ${ SED } -e 's/&/\&/g' -e 's/>/\>/g' -e 's/</\</g'
# Set to YES by the README.html target (and passed via depends-list
# and package-depends)
. i f n d e f P A C K A G E _ N A M E _ A S _ L I N K
PACKAGE_NAME_AS_LINK = NO
. e n d i f # PACKAGE_NAME_AS_LINK
1997-08-20 12:21:05 +02:00
# Nobody should want to override this unless PKGNAME is simply bogus.
. i f ! t a r g e t ( p a c k a g e - n a m e )
package-name :
1998-02-20 23:06:18 +01:00
. i f (${PACKAGE_NAME_AS_LINK} = = "YES" )
@${ ECHO } '<A HREF="../../' ` ${ MAKE } package-path | ${ HTMLIFY } ` '/README.html">' ` echo ${ PKGNAME } | ${ HTMLIFY } ` '</A>'
. e l s e
@${ ECHO } '${PKGNAME}'
. e n d i f # PACKAGE_NAME_AS_LINK != ""
. e n d i f # !target(package-name)
. i f ! t a r g e t ( p a c k a g e - p a t h )
package-path :
1998-05-07 19:21:13 +02:00
@pwd | sed s@` cd ${ PKGSRCDIR } ; pwd ` /@@g
1997-08-20 12:21:05 +02:00
. e n d i f
# Show (recursively) all the packages this package depends on.
. i f ! t a r g e t ( p a c k a g e - d e p e n d s )
package-depends :
1998-04-22 16:22:39 +02:00
@for dir in ` ${ ECHO } ${ LIB_DEPENDS } ${ DEPENDS } ${ RUN_DEPENDS } | ${ TR } '\040' '\012' | ${ SED } -e 's/^[^:]*://' -e 's/:.*//' | sort -u` ; do \
1997-08-20 12:21:05 +02:00
if [ -d $$ dir ] ; then \
1998-02-20 23:06:18 +01:00
( cd $$ dir ; ${ MAKE } package-name package-depends PACKAGE_NAME_AS_LINK = ${ PACKAGE_NAME_AS_LINK } ) ; \
1997-08-20 12:21:05 +02:00
else \
${ ECHO_MSG } " Warning: \" $$ dir\" non-existent -- @pkgdep registration incomplete " >& 2; \
fi ; \
done
. e n d i f
# Build a package but don't check the package cookie
. i f ! t a r g e t ( r e p a c k a g e )
repackage : pre -repackage package
pre-repackage :
@${ RM } -f ${ PACKAGE_COOKIE }
. e n d i f
# Build a package but don't check the cookie for installation, also don't
# install package cookie
. i f ! t a r g e t ( p a c k a g e - n o i n s t a l l )
package-noinstall :
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } PACKAGE_NOINSTALL = yes real-package
. e n d i f
################################################################
# Dependency checking
################################################################
. i f ! t a r g e t ( d e p e n d s )
depends : lib -depends misc -depends
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } fetch-depends
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } build-depends
@cd ${ .CURDIR } && ${ MAKE } ${ .MAKEFLAGS } run-depends
. i f m a k e ( f e t c h - d e p e n d s )
DEPENDS_TMP += ${ FETCH_DEPENDS }
. e n d i f
. i f m a k e ( b u i l d - d e p e n d s )
DEPENDS_TMP += ${ BUILD_DEPENDS }
. e n d i f
. i f m a k e ( r u n - d e p e n d s )
DEPENDS_TMP += ${ RUN_DEPENDS }
. e n d i f
_DEPENDS_USE : .USE
. i f d e f i n e d ( D E P E N D S _ T M P )
. i f ! d e f i n e d ( N O _ D E P E N D S )
@for i in ${ DEPENDS_TMP } ; do \
prog = ` ${ ECHO } $$ i | ${ SED } -e 's/:.*//' ` ; \
dir = ` ${ ECHO } $$ i | ${ SED } -e 's/[^:]*://' ` ; \
if expr " $$ dir " : '.*:' > /dev/null; then \
target = ` ${ ECHO } $$ dir | ${ SED } -e 's/.*://' ` ; \
dir = ` ${ ECHO } $$ dir | ${ SED } -e 's/:.*//' ` ; \
else \
target = ${ DEPENDS_TARGET } ; \
fi ; \
1997-10-28 13:46:37 +01:00
found = not; \
1998-04-24 11:15:57 +02:00
if expr " $$ prog " : '.*/' >/dev/null; then \
1997-08-20 12:21:05 +02:00
if [ -e " $$ prog " ] ; then \
${ ECHO_MSG } " ===> ${ PKGNAME } depends on file: $$ prog - found " ; \
1997-10-28 13:46:37 +01:00
found = "" ; \
1997-08-20 12:21:05 +02:00
else \
${ ECHO_MSG } " ===> ${ PKGNAME } depends on file: $$ prog - not found " ; \
fi ; \
else \
1997-10-28 13:46:37 +01:00
for d in ` echo $$ PATH | tr ':' ' ' ` ; do \
if [ -x $$ d/$$ prog ] ; then \
1998-01-23 10:47:57 +01:00
found = " $$ d/ $$ prog " ; \
break; \
1997-10-28 13:46:37 +01:00
fi \
done ; \
${ ECHO_MSG } " ===> ${ PKGNAME } depends on executable: $$ prog - $$ found found " ; \
1997-08-20 12:21:05 +02:00
fi ; \
1997-10-28 13:46:37 +01:00
if [ X" $$ found " = Xnot ] ; then \
1997-08-20 12:21:05 +02:00
${ ECHO_MSG } " ===> Verifying $$ target for $$ prog in $$ dir " ; \
if [ ! -d " $$ dir " ] ; then \
${ ECHO_MSG } " >> No directory for $$ prog. Skipping.. " ; \
else \
( cd $$ dir; ${ MAKE } ${ .MAKEFLAGS } $$ target) ; \
${ ECHO_MSG } " ===> Returning to build of ${ PKGNAME } " ; \
fi ; \
fi ; \
done
. e n d i f
. e l s e
@${ DO_NADA }
. e n d i f
fetch-depends : _DEPENDS_USE
build-depends : _DEPENDS_USE
run-depends : _DEPENDS_USE
lib-depends :
. i f d e f i n e d ( L I B _ D E P E N D S )
. i f ! d e f i n e d ( N O _ D E P E N D S )
@for i in ${ LIB_DEPENDS } ; do \
1998-01-30 14:53:53 +01:00
lib = ` ${ ECHO } $$ i | ${ SED } -e 's/:.*//' -e 's|\([^\\]\)\.|\1\\\\.|g' ` ; \
1997-08-20 12:21:05 +02:00
dir = ` ${ ECHO } $$ i | ${ SED } -e 's/[^:]*://' ` ; \
if expr " $$ dir " : '.*:' > /dev/null; then \
target = ` ${ ECHO } $$ dir | ${ SED } -e 's/.*://' ` ; \
dir = ` ${ ECHO } $$ dir | ${ SED } -e 's/:.*//' ` ; \
else \
target = ${ DEPENDS_TARGET } ; \
fi ; \
1998-01-30 14:53:53 +01:00
libname = ` ${ ECHO } $$ lib | ${ SED } -e 's|\\\\||g' ` ; \
reallib = ` ${ LDCONFIG } -r | ${ GREP } -e " -l $$ lib " | awk '{ print $$3 }' ` ; \
if [ " X $$ reallib " = X"" ] ; then \
${ ECHO_MSG } " ===> ${ PKGNAME } depends on shared library: $$ libname - not found " ; \
${ ECHO_MSG } " ===> Verifying $$ target for $$ libname in $$ dir " ; \
1997-08-20 12:21:05 +02:00
if [ ! -d " $$ dir " ] ; then \
1998-01-30 14:53:53 +01:00
${ ECHO_MSG } " >> No directory for $$ libname. Skipping.. " ; \
1997-08-20 12:21:05 +02:00
else \
( cd $$ dir; ${ MAKE } ${ .MAKEFLAGS } $$ target) ; \
${ ECHO_MSG } " ===> Returning to build of ${ PKGNAME } " ; \
fi ; \
1998-01-30 14:53:53 +01:00
else \
${ ECHO_MSG } " ===> ${ PKGNAME } depends on shared library: $$ libname - $$ reallib found " ; \
1997-08-20 12:21:05 +02:00
fi ; \
done
. e n d i f
. e l s e
@${ DO_NADA }
. e n d i f
1998-01-30 14:53:53 +01:00
1997-08-20 12:21:05 +02:00
misc-depends :
. i f d e f i n e d ( D E P E N D S )
. i f ! d e f i n e d ( N O _ D E P E N D S )
1998-08-04 12:28:08 +02:00
@( /bin/sh -f -c ' for dir in ${ DEPENDS } ; do \
package = " ` ${ ECHO } \" $$ dir\" | ${ SED } -e s/:.\*//` " ; \
dir = " ` ${ ECHO } \" $$ dir\" | ${ SED } -e s/.\*://` " ; \
found = ` /usr/sbin/pkg_info -e " $$ package " ` ; \
if [ " X $$ found " != X"" ] ; then \
${ ECHO_MSG } " ===> ${ PKGNAME } depends on installed package: $$ package - $$ found found " ; \
1998-04-22 16:22:39 +02:00
else \
1998-06-05 12:27:42 +02:00
${ ECHO_MSG } " ===> ${ PKGNAME } depends on package: $$ package " ; \
1998-04-22 16:22:39 +02:00
target = ${ DEPENDS_TARGET } ; \
${ ECHO_MSG } " ===> Verifying $$ target for $$ dir " ; \
if [ ! -d $$ dir ] ; then \
${ ECHO_MSG } " >> No directory for $$ dir. Skipping.. " ; \
else \
( cd $$ dir; ${ MAKE } ${ .MAKEFLAGS } $$ target) ; \
fi \
fi \
1998-08-04 12:28:08 +02:00
done ' )
1997-08-20 12:21:05 +02:00
. e n d i f
. e l s e
@${ DO_NADA }
. e n d i f
. e n d i f
. i f ! t a r g e t ( c l e a n - d e p e n d s )
clean-depends :
. i f d e f i n e d ( F E T C H _ D E P E N D S ) | | d e f i n e d ( B U I L D _ D E P E N D S ) | | d e f i n e d ( L I B _ D E P E N D S ) \
1998-04-22 16:22:39 +02:00
|| defined( DEPENDS) || defined( RUN_DEPENDS)
@for dir in ` ${ ECHO } ${ FETCH_DEPENDS } ${ BUILD_DEPENDS } ${ LIB_DEPENDS } ${ DEPENDS } ${ RUN_DEPENDS } | ${ TR } '\040' '\012' | ${ SED } -e 's/^[^:]*://' -e 's/:.*//' | sort -u` ; do \
1997-08-20 12:21:05 +02:00
if [ -d $$ dir ] ; then \
( cd $$ dir; ${ MAKE } NOCLEANDEPENDS = yes clean clean-depends) ; \
fi \
done
. e n d i f
. e n d i f
. i f ! t a r g e t ( d e p e n d s - l i s t )
depends-list :
1998-04-22 16:22:39 +02:00
@for dir in ` ${ ECHO } ${ FETCH_DEPENDS } ${ BUILD_DEPENDS } ${ LIB_DEPENDS } ${ DEPENDS } | ${ TR } '\040' '\012' | ${ SED } -e 's/^[^:]*://' -e 's/:.*//' | sort -u` ; do \
1998-02-20 23:06:18 +01:00
( cd $$ dir; ${ MAKE } package-name depends-list PACKAGE_NAME_AS_LINK = ${ PACKAGE_NAME_AS_LINK } ; ) ; \
1997-08-20 12:21:05 +02:00
done
. e n d i f
1998-05-25 02:04:30 +02:00
# The following assumes that PACKAGES is set like the following:
# PACKAGES= /usr/pkgsrc/packages/`uname -r`/${MACHINE_ARCH}
# i.e. contain OS version and arch name as subdirs
. i f ! t a r g e t ( b i n p k g - l i s t )
binpkg-list :
@cd ${ PACKAGES } /../.. ; \
for i in */* ; \
do \
f = $$ i/${ PKGREPOSITORYSUBDIR } /${ PKGNAME } ${ PKG_SUFX } ; \
if [ -f $$ f ] ; then \
echo $$ i; \
fi ; \
done | awk ' \
BEGIN \
{ \
FS = "/" ; \
} \
{ \
rel = $$ 1 ; \
arch = $$ 2 ; \
1998-05-30 00:48:17 +02:00
if ( arch != "m68k" ) { \
if ( arch in f) \
f[ arch] = "%%BIN_PREREL%%" rel "/" arch "%%BIN_MEDREL%%" rel "%%BIN_POSTREL%%, " f[ arch] ; \
else \
f[ arch] = "%%BIN_PREREL%%" rel "/" arch "%%BIN_MEDREL%%" rel "%%BIN_POSTREL%%" ; \
} \
1998-05-25 02:04:30 +02:00
} \
END \
{ \
for ( rel in f) { \
1998-06-05 12:27:42 +02:00
print "%%BIN_PREARCH%%" rel "%%BIN_POSTARCH%% (NetBSD " f[ rel] ")" ; \
1998-05-25 02:04:30 +02:00
} \
} \
'
. e n d i f
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:
#
# distribution-name|port-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
#
. i f ! t a r g e t ( d e s c r i b e )
describe :
@${ ECHO } -n " ${ PKGNAME } | ${ .CURDIR } | " ; \
${ ECHO } -n " ${ PREFIX } | " ; \
if [ -f ${ COMMENT } ] ; then \
${ ECHO } -n " ` ${ CAT } ${ COMMENT } ` " ; \
else \
${ ECHO } -n "** No Description" ; \
fi ; \
if [ -f ${ DESCR } ] ; then \
${ ECHO } -n " | ${ DESCR } " ; \
else \
${ ECHO } -n "|/dev/null" ; \
fi ; \
${ ECHO } -n " | ${ MAINTAINER } | ${ CATEGORIES } | " ; \
case " A ${ FETCH_DEPENDS } B ${ BUILD_DEPENDS } C ${ LIB_DEPENDS } D ${ DEPENDS } E " in \
ABCDE) ; ; \
1998-04-19 14:48:07 +02:00
*) cd ${ .CURDIR } && ${ ECHO } -n ` ${ MAKE } depends-list| sort -u` ; ; \
1997-08-20 12:21:05 +02:00
esac ; \
${ ECHO } -n "|" ; \
case " A ${ RUN_DEPENDS } B ${ LIB_DEPENDS } C ${ DEPENDS } D " in \
ABCD) ; ; \
1998-04-19 14:48:07 +02:00
*) cd ${ .CURDIR } && ${ ECHO } -n ` ${ MAKE } package-depends| sort -u` ; ; \
1997-08-20 12:21:05 +02:00
esac ; \
1998-03-08 15:25:52 +01:00
${ ECHO } -n "|" ; \
if [ " ${ ONLY_FOR_ARCHS } " = "" ] ; then \
${ ECHO } -n "any" ; \
else \
${ ECHO } -n " ${ ONLY_FOR_ARCHS } " ; \
fi ; \
1997-08-20 12:21:05 +02:00
${ ECHO } ""
. e n d i f
. i f ! t a r g e t ( r e a d m e s )
readmes : readme
. e n d i f
. i f ! t a r g e t ( r e a d m e )
readme :
1998-06-29 23:52:20 +02:00
@if [ -f README.html ] ; then mv -f README.html README.html.BAK ; fi
1998-04-19 14:48:07 +02:00
@cd ${ .CURDIR } && ${ MAKE } README.html
1997-08-20 12:21:05 +02:00
. e n d i f
1997-11-21 18:44:11 +01:00
. i f (${OPSYS} = = "NetBSD" )
README_NAME = ${ TEMPLATES } /README.pkg
. e l s e
README_NAME = ${ TEMPLATES } /README.port
. e n d i f
1998-07-22 11:18:46 +02:00
# set up the correct license information as a sed expression
. i f d e f L I C E N S E
SED_LICENSE_EXPR = -e 's|%%LICENSE%%|<p>Please note that this package has a ${LICENSE} license.</p>|'
. e l s e
SED_LICENSE_EXPR = -e 's|%%LICENSE%%||'
. e n d i f
1997-08-20 12:21:05 +02:00
README.html :
1998-07-16 18:24:40 +02:00
@${ MAKE } depends-list PACKAGE_NAME_AS_LINK = YES | sort -u >> $@ .tmp1
1998-05-25 02:04:30 +02:00
@[ -s $@ .tmp1 ] || echo "<I>(none)</I>" >> $@ .tmp1
1998-07-16 18:24:40 +02:00
@${ MAKE } package-depends PACKAGE_NAME_AS_LINK = YES | sort -u >> $@ .tmp2
1998-05-25 02:04:30 +02:00
@[ -s $@ .tmp2 ] || echo "<I>(none)</I>" >> $@ .tmp2
1997-11-21 18:44:11 +01:00
@${ ECHO } ${ PKGNAME } | ${ HTMLIFY } >> $@ .tmp3
1998-05-25 02:04:30 +02:00
@${ MAKE } binpkg-list >> $@ .tmp4
@[ -s $@ .tmp4 ] || echo "<I>(no precompiled binaries available)</I>" >> $@ .tmp4
1997-11-21 18:44:11 +01:00
@${ CAT } ${ README_NAME } | \
1998-02-20 23:06:18 +01:00
${ SED } -e 's|%%PORT%%|' " ` ${ MAKE } package-path | ${ HTMLIFY } ` " '|g' \
1997-11-21 18:44:11 +01:00
-e '/%%PKG%%/r$@.tmp3' \
-e '/%%PKG%%/d' \
1998-07-22 11:18:46 +02:00
${ SED_LICENSE_EXPR } \
1997-08-20 12:21:05 +02:00
-e '/%%COMMENT%%/r${PKGDIR}/COMMENT' \
-e '/%%COMMENT%%/d' \
1997-11-21 18:44:11 +01:00
-e '/%%BUILD_DEPENDS%%/r$@.tmp1' \
-e '/%%BUILD_DEPENDS%%/d' \
-e '/%%RUN_DEPENDS%%/r$@.tmp2' \
-e '/%%RUN_DEPENDS%%/d' \
1998-05-25 02:04:30 +02:00
-e '/%%BIN_PKGS%%/r$@.tmp4' \
-e '/%%BIN_PKGS%%/d' \
| ${ SED } \
-e 's@%%BIN_PREREL%%@<A HREF="ftp://ftp.netbsd.org/pub/NetBSD/packages/@g' \
-e 's@%%BIN_MEDREL%%@/${PKGREPOSITORYSUBDIR}/${PKGNAME}${PKG_SUFX}">@g' \
-e 's@%%BIN_POSTREL%%@</A>@g' \
-e 's@%%BIN_PREARCH%%@<LI> @g' \
-e 's@%%BIN_POSTARCH%%@@g' \
1998-06-29 23:52:20 +02:00
>> $@ .tmp
@if cmp -s $@ .tmp $@ .BAK ; then \
mv $@ .BAK $@ ; \
rm $@ .tmp ; \
else \
1998-07-09 20:18:43 +02:00
${ ECHO_MSG } " ===> Creating README.html for ${ _THISDIR_ } ${ PKGNAME } " ; \
1998-06-29 23:52:20 +02:00
mv $@ .tmp $@ ; \
rm -f $@ .BAK ; \
fi
1998-05-25 02:04:30 +02:00
@rm -f $@ .tmp1 $@ .tmp2 $@ .tmp3 $@ .tmp4
1997-08-20 12:21:05 +02:00
. i f ! t a r g e t ( p r i n t - d e p e n d s - l i s t )
print-depends-list :
. i f d e f i n e d ( F E T C H _ D E P E N D S ) | | d e f i n e d ( B U I L D _ D E P E N D S ) | | \
defined( LIB_DEPENDS) || defined( DEPENDS)
@${ ECHO } -n 'This port requires package(s) "'
1998-04-19 14:48:07 +02:00
@${ ECHO } -n ` ${ MAKE } depends-list | sort -u`
1997-08-20 12:21:05 +02:00
@${ ECHO } '" to build.'
. e n d i f
. e n d i f
. i f ! t a r g e t ( p r i n t - p a c k a g e - d e p e n d s )
print-package-depends :
. i f d e f i n e d ( R U N _ D E P E N D S ) | | d e f i n e d ( L I B _ D E P E N D S ) | | d e f i n e d ( D E P E N D S )
@${ ECHO } -n 'This port requires package(s) "'
1998-04-19 14:48:07 +02:00
@${ ECHO } -n ` ${ MAKE } package-depends | sort -u`
1997-08-20 12:21:05 +02:00
@${ ECHO } '" to run.'
. e n d i f
. e n d i f
# Fake installation of package so that user can pkg_delete it later.
# Also, make sure that an installed port is recognized correctly in
# accordance to the @pkgdep directive in the packing lists
. i f ! t a r g e t ( f a k e - p k g )
1997-10-07 02:30:31 +02:00
fake-pkg : ${PLIST }
1997-08-20 12:21:05 +02:00
@if [ ! -f ${ PLIST } -o ! -f ${ COMMENT } -o ! -f ${ DESCR } ] ; then ${ ECHO } " ** Missing package files for ${ PKGNAME } - installation not recorded. " ; exit 1; fi
@if [ ! -d ${ PKG_DBDIR } ] ; then ${ RM } -f ${ PKG_DBDIR } ; ${ MKDIR } ${ PKG_DBDIR } ; fi
. i f d e f i n e d ( F O R C E _ P K G _ R E G I S T E R )
@${ RM } -rf ${ PKG_DBDIR } /${ PKGNAME }
. e n d i f
1998-06-06 01:27:48 +02:00
@if [ ! -d ${ PKG_DBDIR } /${ PKGNAME } ] ; then \
1997-08-20 12:21:05 +02:00
${ ECHO_MSG } " ===> Registering installation for ${ PKGNAME } " ; \
${ MKDIR } ${ PKG_DBDIR } /${ PKGNAME } ; \
${ PKG_CMD } ${ PKG_ARGS } -O ${ PKGFILE } > ${ PKG_DBDIR } /${ PKGNAME } /+CONTENTS; \
${ CP } ${ DESCR } ${ PKG_DBDIR } /${ PKGNAME } /+DESC; \
${ CP } ${ COMMENT } ${ PKG_DBDIR } /${ PKGNAME } /+COMMENT; \
if [ -f ${ PKGDIR } /INSTALL ] ; then \
${ CP } ${ PKGDIR } /INSTALL ${ PKG_DBDIR } /${ PKGNAME } /+INSTALL; \
fi ; \
if [ -f ${ PKGDIR } /DEINSTALL ] ; then \
${ CP } ${ PKGDIR } /DEINSTALL ${ PKG_DBDIR } /${ PKGNAME } /+DEINSTALL; \
fi ; \
if [ -f ${ PKGDIR } /REQ ] ; then \
1998-04-20 10:24:58 +02:00
${ CP } ${ PKGDIR } /REQ ${ PKG_DBDIR } /${ PKGNAME } /+REQUIRE; \
1997-08-20 12:21:05 +02:00
fi ; \
1997-10-19 01:33:25 +02:00
if [ -f ${ PKGDIR } /MESSAGE ] ; then \
${ CP } ${ PKGDIR } /MESSAGE ${ PKG_DBDIR } /${ PKGNAME } /+DISPLAY; \
fi ; \
1998-04-19 14:48:07 +02:00
for dep in ` ${ MAKE } package-depends ECHO_MSG = ${ TRUE } | sort -u` ; do \
1997-08-20 12:21:05 +02:00
if [ -d ${ PKG_DBDIR } /$$ dep ] ; then \
if ! ${ GREP } ^${ PKGNAME } $$ ${ PKG_DBDIR } /$$ dep/+REQUIRED_BY \
>/dev/null 2>& 1; then \
${ ECHO } ${ PKGNAME } >> ${ PKG_DBDIR } /$$ dep/+REQUIRED_BY; \
fi ; \
fi ; \
done ; \
fi
. e n d i f
# Depend is generally meaningless for arbitrary ports, but if someone wants
# 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
#
. i f ! t a r g e t ( d e p e n d )
depend :
. e n d i f
# Same goes for tags
. i f ! t a r g e t ( t a g s )
tags :
. e n d i f
1997-09-28 02:44:15 +02:00
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)
1998-07-22 09:30:22 +02:00
# - substituting ${OPSYS}, ${MACHINE_ARCH} and ${MACHINE_GNU_ARCH}
1998-06-05 14:45:53 +02:00
1997-11-22 04:39:20 +01:00
${PLIST} : ${PLIST_SRC }
@if [ -z " ${ PLIST_SRC } " ] ; then \
${ ECHO } " No ${ PKGDIR } /PLIST, and no ${ PKGDIR } /PLIST-{mi,md.shared,md.static} " ; \
1998-06-18 13:45:33 +02:00
${ ECHO } " The package Makefile must make ${ PLIST } by setting PLIST_SRC! " ; \
1997-11-22 04:39:20 +01:00
fi
1997-10-07 02:30:31 +02:00
. i f d e f i n e d ( M A N Z )
1997-11-26 10:24:18 +01:00
@if [ ! -z " ${ PLIST_SRC } " ] ; then \
1997-11-22 04:39:20 +01:00
${ CAT } ${ PLIST_SRC } | ${ SED } \
1998-06-22 16:47:49 +02:00
-e 's|\(^\([^/]*/\)*man/\([^/]*/\)\{0,1\}man[1-9ln]/.*[1-9ln]$$\)|\1.gz|' \
-e 's|\(^\([^/]*/\)*man/\([^/]*/\)\{0,1\}cat[1-9ln]/.*[0-9ln]$$\)|\1.gz|' \
1998-07-22 09:30:22 +02:00
-e 's|\$${OPSYS}|${OPSYS}|g' \
1998-01-28 16:33:44 +01:00
-e 's/\$${MACHINE_ARCH}/' ${ MACHINE_ARCH } '/g' \
1998-06-03 19:48:32 +02:00
-e 's/\$${MACHINE_GNU_ARCH}/' ${ MACHINE_GNU_ARCH } '/g' \
1997-11-22 04:39:20 +01:00
>${ PLIST } ; \
fi
1997-10-07 02:30:31 +02:00
. e l s e # !MANZ
1997-11-22 04:39:20 +01:00
@if [ ! -z " ${ PLIST_SRC } " ] ; then \
${ CAT } ${ PLIST_SRC } | ${ SED } \
1998-06-22 16:47:49 +02:00
-e 's|\(^\([^/]*/\)*man/\([^/]*/\)\{0,1\}man[1-9ln]/.*[1-9ln]\)\.gz$$|\1|' \
-e 's|\(^\([^/]*/\)*man/\([^/]*/\)\{0,1\}cat[1-9ln]/.*[0-9ln]\)\.gz$$|\1|' \
1998-07-22 09:30:22 +02:00
-e 's|\$${OPSYS}|${OPSYS}|g' \
1998-01-28 16:33:44 +01:00
-e 's/\$${MACHINE_ARCH}/' ${ MACHINE_ARCH } '/g' \
1998-06-03 19:48:32 +02:00
-e 's/\$${MACHINE_GNU_ARCH}/' ${ MACHINE_GNU_ARCH } '/g' \
1997-11-22 04:39:20 +01:00
>${ PLIST } ; \
fi
1997-10-07 02:30:31 +02:00
. e n d i f # MANZ