diff options
Diffstat (limited to 'ports-mgmt/portmk/Mk/bsd.port.post.mk')
-rw-r--r-- | ports-mgmt/portmk/Mk/bsd.port.post.mk | 3505 |
1 files changed, 0 insertions, 3505 deletions
diff --git a/ports-mgmt/portmk/Mk/bsd.port.post.mk b/ports-mgmt/portmk/Mk/bsd.port.post.mk deleted file mode 100644 index 73b04965c429..000000000000 --- a/ports-mgmt/portmk/Mk/bsd.port.post.mk +++ /dev/null @@ -1,3505 +0,0 @@ -#-*- mode: makefile; tab-width: 4; -*- -# ex:ts=4 -# -# $FreeBSD$ -# - -.if defined(_POSTMKINCLUDED) -check-makefile:: - @${ECHO_CMD} "${PKGNAME}: Makefile error: you cannot include bsd.port[.post].mk twice" - @${FALSE} -.endif - -_POSTMKINCLUDED= yes - -OPTIONS_DBDIR?= /var/db/options -OPTIONS_FILE?= ${OPTIONS_DBDIR}/${UNIQUENAME} - -.if defined(_OPTIONSNG_READ) && exists(${OPTIONS_FILE}) -.if ${_OPTIONSNG_READ} == "default" -_ONG_REEXEC= yes -check-makefile:: - @${ECHO_MSG} "===> Configuration error, \`make rmconfig' to remove custom options." - @${FALSE} -.else -.undef _ONG_REEXEC -.endif -_ONG_MAKEFLAGS= -f '${OPTIONS_FILE}' -f Makefile -.else -.undef _ONG_REEXEC -_ONG_MAKEFLAGS= -f Makefile -.endif - -WRKDIR?= ${WRKDIRPREFIX}${.CURDIR}/work -.if defined(NO_WRKSUBDIR) -WRKSRC?= ${WRKDIR} -.else -WRKSRC?= ${WRKDIR}/${DISTNAME} -.endif - -PATCH_WRKSRC?= ${WRKSRC} -CONFIGURE_WRKSRC?= ${WRKSRC} -BUILD_WRKSRC?= ${WRKSRC} -INSTALL_WRKSRC?=${WRKSRC} - -WRKINST?= ${WRKDIR}/.inst - -.if defined(DESTDIR) -check-makefile:: - @${ECHO_CMD} "${PKGNAME}: DESTDIR is not a user settable variable" - @${FALSE} -.endif - -.if defined(CLEANROOM_INSTALL) -DESTDIR= ${WRKINST} -.endif - -PLIST_SUB+= OSREL=${OSREL} PREFIX=%D LOCALBASE=${LOCALBASE} X11BASE=${X11BASE} - -.if defined(WITHOUT_CPU_CFLAGS) -.if defined(_CPUCFLAGS) -.if !empty(_CPUCFLAGS) -CFLAGS:= ${CFLAGS:C/${_CPUCFLAGS}//} -.endif -.endif -.endif - -.if defined(NOPORTDOCS) -PLIST_SUB+= PORTDOCS="@comment " -.else -PLIST_SUB+= PORTDOCS="" -.endif - -CONFIGURE_SHELL?= ${SH} -MAKE_SHELL?= ${SH} - -CONFIGURE_ENV+= SHELL=${SH} CONFIG_SHELL=${SH} PORTOBJFORMAT=${PORTOBJFORMAT} -SCRIPTS_ENV+= PORTOBJFORMAT=${PORTOBJFORMAT} -MAKE_ENV+= SHELL=${SH} PORTOBJFORMAT=${PORTOBJFORMAT} -PLIST_SUB+= PORTOBJFORMAT=${PORTOBJFORMAT} - -.if defined(MANCOMPRESSED) -.if ${MANCOMPRESSED} != yes && ${MANCOMPRESSED} != no && \ - ${MANCOMPRESSED} != maybe -check-makevars:: - @${ECHO_CMD} "${PKGNAME}: Makefile error: value of MANCOMPRESSED (is \"${MANCOMPRESSED}\") can only be \"yes\", \"no\" or \"maybe\"". - @${FALSE} -.endif -.endif - -.if defined(USE_IMAKE) && !defined(NO_INSTALL_MANPAGES) -MANCOMPRESSED?= yes -.else -MANCOMPRESSED?= no -.endif - -.if defined(PATCHFILES) -.if ${PATCHFILES:M*.bz2}x != x && defined(BZIP2DEPENDS) -PATCH_DEPENDS+= bzip2:${PORTSDIR}/archivers/bzip2 -.endif -.if ${PATCHFILES:M*.zip}x != x && defined(ZIPDEPENDS) -PATCH_DEPENDS+= unzip:${PORTSDIR}/archivers/unzip -.endif -.endif - -.if defined(USE_BZIP2) && defined(BZIP2DEPENDS) -EXTRACT_DEPENDS+= bzip2:${PORTSDIR}/archivers/bzip2 -.endif -.if defined(USE_ZIP) && defined(ZIPDEPENDS) -EXTRACT_DEPENDS+= unzip:${PORTSDIR}/archivers/unzip -.endif -.if defined(USE_GMAKE) -BUILD_DEPENDS+= gmake:${PORTSDIR}/devel/gmake -CONFIGURE_ENV+= MAKE=${GMAKE} -.endif - -.if defined(USE_GCC) -.if ${OSVERSION} < 400012 -GCCVERSION= 020702 -.endif -.if ${OSVERSION} >= 400012 && ${OSVERSION} < 500035 -GCCVERSION= 029500 -.endif -.if ${OSVERSION} >= 500035 && ${OSVERSION} < 500039 -GCCVERSION= 030100 -.endif -.if ${OSVERSION} >= 500039 && ${OSVERSION} < 501103 -GCCVERSION= 030200 -.endif -.if ${OSVERSION} >= 501103 -GCCVERSION= 030301 -.endif -.if ${OSVERSION} >= 599999 -GCCVERSION= 030400 -.endif -.endif - -.if defined(USE_GCC) -.if ${USE_GCC} == 2.95 && ( ${OSVERSION} < 400012 || ${OSVERSION} > 500034 ) -CC= gcc295 -CXX= g++295 -BUILD_DEPENDS+= gcc295:${PORTSDIR}/lang/gcc295 -GCCVERSION= 029500 -.endif -.if ${USE_GCC} == 3.1 && ( ${OSVERSION} < 500035 || ${OSVERSION} > 500038 ) -CC= gcc31 -CXX= g++31 -F77= g77-31 -BUILD_DEPENDS+= gcc31:${PORTSDIR}/lang/gcc31 -GCCVERSION= 030100 -.endif -.if ${USE_GCC} == 3.2 && ${OSVERSION} < 500039 -CC= gcc32 -CXX= g++32 -F77= g77-32 -BUILD_DEPENDS+= gcc32:${PORTSDIR}/lang/gcc32 -GCCVERSION= 030200 -.endif -.if ${USE_GCC} == 3.3 && ${OSVERSION} < 501103 -CC= gcc33 -CXX= g++33 -F77= g77-33 -BUILD_DEPENDS+= gcc33:${PORTSDIR}/lang/gcc33 -GCCVERSION= 030301 -.endif -.if ${USE_GCC} == 3.4 # Not yet available in any OSVERSION -CC= gcc34 -CXX= g++34 -F77= g77-34 -BUILD_DEPENDS+= gcc34:${PORTSDIR}/lang/gcc34 -GCCVERSION= 030400 -.endif -MAKE_ENV+= CC="${CC}" CXX="${CXX}" -.endif - -.if defined(USE_OPENLDAP_VER) -USE_OPENLDAP?= yes -WANT_OPENLDAP_VER= ${USE_OPENLDAP_VER} -.endif - -.if defined(USE_OPENLDAP) -.if defined(WANT_OPENLDAP_SASL) -_OPENLDAP_FLAVOUR= -sasl -.else -_OPENLDAP_FLAVOUR= -.endif -.if ${WANT_OPENLDAP_VER} == 22 -LIB_DEPENDS+= ldap-2.2.7:${PORTSDIR}/net/openldap22${_OPENLDAP_FLAVOUR}-client -.elif ${WANT_OPENLDAP_VER} == 21 -LIB_DEPENDS+= ldap.2:${PORTSDIR}/net/openldap21${_OPENLDAP_FLAVOUR}-client -.else -BROKEN= "unknown OpenLDAP version: ${WANT_OPENLDAP_VER}" -.endif -.endif - -.if defined(USE_GETOPT_LONG) -.if ${OSVERSION} < 500041 -LIB_DEPENDS+= gnugetopt.1:${PORTSDIR}/devel/libgnugetopt -CPPFLAGS+= -I${LOCALBASE}/include -LDFLAGS+= -L${LOCALBASE}/lib -lgnugetopt -CONFIGURE_ENV+= CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" -.endif -.endif - -.if defined(USE_RC_SUBR) -.if ${OSVERSION} < 500037 -RUN_DEPENDS+= ${LOCALBASE}/etc/rc.subr:${PORTSDIR}/sysutils/rc_subr -RC_SUBR= ${LOCALBASE}/etc/rc.subr -.else -RC_SUBR= /etc/rc.subr -.endif -.endif - -.if defined(USE_ICONV) -LIB_DEPENDS+= iconv.3:${PORTSDIR}/converters/libiconv -.endif - -.if defined(USE_GETTEXT) -. if ${USE_GETTEXT:L} == "yes" -LIB_DEPENDS+= intl:${PORTSDIR}/devel/gettext -. else -LIB_DEPENDS+= intl.${USE_GETTEXT}:${PORTSDIR}/devel/gettext -. endif -.endif - -.if defined(USE_LINUX) -RUN_DEPENDS+= ${LINUXBASE}/etc/redhat-release:${PORTSDIR}/emulators/linux_base -.endif - -.if defined(USE_MOTIF) -USE_XPM= yes -.if defined(WANT_LESSTIF) -LIB_DEPENDS+= Xm:${PORTSDIR}/x11-toolkits/lesstif -NO_OPENMOTIF= yes -.endif -.if !defined(NO_OPENMOTIF) -LIB_DEPENDS+= Xm.3:${PORTSDIR}/x11-toolkits/open-motif -.endif -.endif - -.if defined(USE_FREETYPE) -LIB_DEPENDS+= ttf.4:${PORTSDIR}/print/freetype -.endif - -.if defined(X_WINDOW_SYSTEM) && ${X_WINDOW_SYSTEM:L} == xorg -X_IMAKE_PORT= ${PORTSDIR}/devel/imake-6 -X_LIBRARIES_PORT= ${PORTSDIR}/x11/xorg-libraries -X_CLIENTS_PORT= ${PORTSDIR}/x11/xorg-clients -X_SERVER_PORT= ${PORTSDIR}/x11-servers/xorg-server -X_FONTSERVER_PORT= ${PORTSDIR}/x11-servers/xorg-fontserver -X_PRINTSERVER_PORT= ${PORTSDIR}/x11-servers/xorg-printserver -X_VFBSERVER_PORT= ${PORTSDIR}/x11-servers/xorg-vfbserver -X_NESTSERVER_PORT= ${PORTSDIR}/x11-servers/xorg-nestserver -X_FONTS_ENCODINGS_PORT= ${PORTSDIR}/x11-fonts/xorg-fonts-encodings -X_FONTS_MISC_PORT= ${PORTSDIR}/x11-fonts/xorg-fonts-miscbitmaps -X_FONTS_100DPI_PORT= ${PORTSDIR}/x11-fonts/xorg-fonts-100dpi -X_FONTS_75DPI_PORT= ${PORTSDIR}/x11-fonts/xorg-fonts-75dpi -X_FONTS_CYRILLIC_PORT= ${PORTSDIR}/x11-fonts/xorg-fonts-cyrillic -X_FONTS_TTF_PORT= ${PORTSDIR}/x11-fonts/xorg-fonts-truetype -X_FONTS_TYPE1_PORT= ${PORTSDIR}/x11-fonts/xorg-fonts-type1 -X_MANUALS_PORT= ${PORTSDIR}/x11/xorg-manpages -.elif defined(X_WINDOW_SYSTEM) && ${X_WINDOW_SYSTEM:L} == xfree86-4 -X_IMAKE_PORT= ${PORTSDIR}/devel/imake-4 -X_LIBRARIES_PORT= ${PORTSDIR}/x11/XFree86-4-libraries -X_CLIENTS_PORT= ${PORTSDIR}/x11/XFree86-4-clients -X_SERVER_PORT= ${PORTSDIR}/x11-servers/XFree86-4-Server -X_FONTSERVER_PORT= ${PORTSDIR}/x11-servers/XFree86-4-FontServer -X_PRINTSERVER_PORT= ${PORTSDIR}/x11-servers/XFree86-4-PrintServer -X_VFBSERVER_PORT= ${PORTSDIR}/x11-servers/XFree86-4-VirtualFramebufferServer -X_NESTSERVER_PORT= ${PORTSDIR}/x11-servers/XFree86-4-NestServer -X_FONTS_ENCODINGS_PORT= ${PORTSDIR}/x11-fonts/XFree86-4-fontEncodings -X_FONTS_MISC_PORT= ${PORTSDIR}/x11-fonts/XFree86-4-fontDefaultBitmaps -X_FONTS_100DPI_PORT= ${PORTSDIR}/x11-fonts/XFree86-4-font100dpi -X_FONTS_75DPI_PORT= ${PORTSDIR}/x11-fonts/XFree86-4-font75dpi -X_FONTS_CYRILLIC_PORT= ${PORTSDIR}/x11-fonts/XFree86-4-fontCyrillic -X_FONTS_TTF_PORT= ${PORTSDIR}/x11-fonts/XFree86-4-fontScalable -X_FONTS_TYPE1_PORT= ${PORTSDIR}/x11-fonts/XFree86-4-fontScalable -X_MANUALS_PORT= ${PORTSDIR}/x11/XFree86-4-manuals -.elif defined(X_WINDOW_SYSTEM) && ${X_WINDOW_SYSTEM:L} == xfree86-3 -X_IMAKE_PORT= ${PORTSDIR}/x11/XFree86 -X_LIBRARIES_PORT= ${PORTSDIR}/x11/XFree86 -X_CLIENTS_PORT= ${PORTSDIR}/x11/XFree86 -X_SERVER_PORT= ${PORTSDIR}/x11/XFree86 -X_FONTSERVER_PORT= ${PORTSDIR}/x11/XFree86 -X_PRINTSERVER_PORT= ${PORTSDIR}/x11/XFree86 -X_VFBSERVER_PORT= ${PORTSDIR}/x11/XFree86 -X_NESTSERVER_PORT= ${PORTSDIR}/x11/XFree86 -X_FONTS_ENCODINGS_PORT= ${PORTSDIR}/x11/XFree86 -X_FONTS_MISC_PORT= ${PORTSDIR}/x11/XFree86 -X_FONTS_100DPI_PORT= ${PORTSDIR}/x11/XFree86 -X_FONTS_75DPI_PORT= ${PORTSDIR}/x11/XFree86 -X_FONTS_CYRILLIC_PORT= ${PORTSDIR}/x11/XFree86 -X_FONTS_TTF_PORT= ${PORTSDIR}/x11/XFree86 -X_FONTS_TYPE1_PORT= ${PORTSDIR}/x11/XFree86 -X_MANUALS_PORT= ${PORTSDIR}/x11/XFree86 -.else -.error Bad X_WINDOW_SYSTEM setting -.endif - -.if defined(USE_IMAKE) -BUILD_DEPENDS+= imake:${X_IMAKE_PORT} -.endif - -.if ${X_WINDOW_SYSTEM:L} == xfree86-3 - -.if defined(USE_XPM) -LIB_DEPENDS+= Xpm.4:${PORTSDIR}/graphics/xpm -.endif -.if defined(USE_GL) -LIB_DEPENDS+= GL.14:${PORTSDIR}/graphics/mesagl -.endif - -XAWVER= 6 -PKG_IGNORE_DEPENDS?= '^XFree86-3\.' - -.else - -.if defined(USE_IMAKE) -RUN_DEPENDS+= mkhtmlindex:${X_IMAKE_PORT} -.endif -.if defined(USE_XPM) || defined(USE_GL) -USE_XLIB= yes -.endif - -XAWVER= 7 -PKG_IGNORE_DEPENDS?= 'this_port_does_not_exist' - -.endif - -PLIST_SUB+= XAWVER=${XAWVER} - -.if defined(USE_MESA) -LIB_DEPENDS+= glut.3:${PORTSDIR}/graphics/libglut -.endif - -.if defined(USE_BISON) -.if ${OSVERSION} >= 400014 -BUILD_DEPENDS+= bison:${PORTSDIR}/devel/bison -.endif -.endif - -PLIST_SUB+= PERL_VERSION=${PERL_VERSION} \ - PERL_VER=${PERL_VER} \ - PERL_ARCH=${PERL_ARCH} \ - SITE_PERL=${SITE_PERL_REL} - -.if defined(PERL_MODBUILD) -PERL_CONFIGURE= yes -CONFIGURE_SCRIPT?= Build.PL -.if ${PORTNAME} != Module-Build -BUILD_DEPENDS+= ${SITE_PERL}/Module/Build.pm:${PORTSDIR}/devel/p5-Module-Build -.endif -ALL_TARGET?= -PL_BUILD?= Build -CONFIGURE_ARGS+= \ - install_path=lib="${PREFIX}/${SITE_PERL_REL}" \ - install_path=arch="${PREFIX}/${SITE_PERL_REL}/${PERL_ARCH}" \ - install_path=script="${PREFIX}/bin" \ - install_path=bin="${PREFIX}/bin" \ - install_path=libdoc="${MAN3PREFIX}/man/man3" \ - install_path=bindoc="${MAN1PREFIX}/man/man1" -.endif - -.if defined(PERL_CONFIGURE) -USE_PERL5= yes -USE_REINPLACE=yes -.endif - -.if ${PERL_LEVEL} >= 500600 -.if defined(USE_PERL5) || defined(USE_PERL5_BUILD) -EXTRACT_DEPENDS+=${PERL5}:${PORTSDIR}/lang/${PERL_PORT} -PATCH_DEPENDS+= ${PERL5}:${PORTSDIR}/lang/${PERL_PORT} -BUILD_DEPENDS+= ${PERL5}:${PORTSDIR}/lang/${PERL_PORT} -.endif -.if defined(USE_PERL5) || defined(USE_PERL5_RUN) -RUN_DEPENDS+= ${PERL5}:${PORTSDIR}/lang/${PERL_PORT} -.endif -.endif - -.if defined(USE_MYSQL) -DEFAULT_MYSQL_VER?= 40 -# MySQL client version currently supported. -MYSQL323_LIBVER= 10 -MYSQL40_LIBVER= 12 -MYSQL41_LIBVER= 14 -MYSQL50_LIBVER= 14 - -# Setting/finding MySQL version we want. -.if defined(WANT_MYSQL_VER) -MYSQL_VER= ${WANT_MYSQL_VER} -.elif defined(WITH_MYSQL_VER) -MYSQL_VER= ${WITH_MYSQL_VER} -.elif exists(${LOCALBASE}/bin/mysql) -MYSQL_VER!= ${LOCALBASE}/bin/mysql --version | ${SED} -e 's/.*Distrib \([0-9]\)\.\([0-9]*\).*/\1\2/' -.else -MYSQL_VER= ${DEFAULT_MYSQL_VER} -.endif # WANT_MYSQL_VER - -# And now we are checking if we can use it -.if exists(${PORTSDIR}/databases/mysql${MYSQL_VER}-client) -.if defined(BROKEN_WITH_MYSQL) -. for VER in ${BROKEN_WITH_MYSQL} -. if (${MYSQL_VER} == "${VER}") -IGNORE= Doesn't work with MySQL version : ${MYSQL_VER} (Doesn't support MySQL ${BROKEN_WITH_MYSQL}) -. endif -. endfor -.endif # BROKEN_WITH_MYSQL -LIB_DEPENDS+= mysqlclient.${MYSQL${MYSQL_VER}_LIBVER}:${PORTSDIR}/databases/mysql${MYSQL_VER}-client -.else -BROKEN= "unknown MySQL version: ${MYSQL_VER}" -.endif # Check for correct libs -.endif # USE_MYSQL - -.if defined(USE_XLIB) -LIB_DEPENDS+= X11.6:${X_LIBRARIES_PORT} -# Add explicit X options to avoid problems with false positives in configure -.if defined(GNU_CONFIGURE) -CONFIGURE_ARGS+=--x-libraries=${X11BASE}/lib --x-includes=${X11BASE}/include -.endif -.endif - -# XXX: (not yet): .if defined(USE_AUTOTOOLS) -.include "${PORTSDIR}/Mk/bsd.autotools.mk" -# XXX: (not yet): .endif - -.if defined(WANT_GNOME) || defined(USE_GNOME) || defined(USE_GTK) -.include "${PORTSDIR}/Mk/bsd.gnome.mk" -.endif - -.if defined(USE_SDL) || defined(WANT_SDL) -.include "${PORTSDIR}/Mk/bsd.sdl.mk" -.endif - -.if defined(USE_PYTHON) -.include "${PORTSDIR}/Mk/bsd.python.mk" -.endif - -.if exists(${PORTSDIR}/../Makefile.inc) -.include "${PORTSDIR}/../Makefile.inc" -USE_SUBMAKE= yes -.endif - -# Set the default for the installation of Postscript(TM)- -# compatible functionality. -.if !defined(WITHOUT_X11) -.if defined(WITH_GHOSTSCRIPT_AFPL) -.if ${WITH_GHOSTSCRIPT_AFPL} == yes -GHOSTSCRIPT_PORT?= print/ghostscript-afpl -.else -GHOSTSCRIPT_PORT?= print/ghostscript-gnu -.endif -.else -GHOSTSCRIPT_PORT?= print/ghostscript-gnu -.endif -.else -.if defined(WITH_GHOSTSCRIPT_AFPL) -.if ${WITH_GHOSTSCRIPT_AFPL} == yes -GHOSTSCRIPT_PORT?= print/ghostscript-afpl-nox11 -.else -GHOSTSCRIPT_PORT?= print/ghostscript-gnu-nox11 -.endif -.else -GHOSTSCRIPT_PORT?= print/ghostscript-gnu-nox11 -.endif -.endif - -# Set up the ghostscript dependencies. -.if defined(USE_GHOSTSCRIPT) || defined(USE_GHOSTSCRIPT_BUILD) -BUILD_DEPENDS+= gs:${PORTSDIR}/${GHOSTSCRIPT_PORT} -.endif -.if defined(USE_GHOSTSCRIPT) || defined(USE_GHOSTSCRIPT_RUN) -RUN_DEPENDS+= gs:${PORTSDIR}/${GHOSTSCRIPT_PORT} -.endif - -# Special macro for doing in-place file editing using regexps -.if defined(USE_REINPLACE) -REINPLACE_ARGS?= -i.bak -.if ${OSVERSION} < 460101 || ( ${OSVERSION} >= 500000 && ${OSVERSION} < 500036 ) -PATCH_DEPENDS+= ${LOCALBASE}/bin/sed_inplace:${PORTSDIR}/textproc/sed_inplace -REINPLACE_CMD?= ${LOCALBASE}/bin/sed_inplace ${REINPLACE_ARGS} -.else -REINPLACE_CMD?= ${SED} ${REINPLACE_ARGS} -.endif -.endif - -# Names of cookies used to skip already completed stages -.for target in extract patch configure build install package -${target:U}_COOKIE?=${WRKDIR}/.${target}_done.${PKGNAME}.${PREFIX:S/\//_/g} -.endfor - -# How to do nothing. Override if you, for some strange reason, would rather -# do something. -DO_NADA?= ${TRUE} - -# Use this as the first operand to always build dependency. -NONEXISTENT?= /nonexistent - -# Miscellaneous overridable commands: -GMAKE?= gmake -XMKMF?= xmkmf -a -MKHTMLINDEX?= ${X11BASE}/bin/mkhtmlindex -.if exists(/sbin/md5) -MD5?= /sbin/md5 -.elif exists(/bin/md5) -MD5?= /bin/md5 -.elif exists(/usr/bin/md5) -MD5?= /usr/bin/md5 -.else -MD5?= md5 -.endif -MD5_FILE?= ${MASTERDIR}/distinfo - -MAKE_FLAGS?= -f -MAKEFILE?= Makefile -MAKE_ENV+= PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} X11BASE=${X11BASE} DESTDIR=${DESTDIR} MOTIFLIB="${MOTIFLIB}" LIBDIR="${LIBDIR}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" MANPREFIX="${MANPREFIX}" - -.if ${OSVERSION} < 500016 -PTHREAD_CFLAGS?= -D_THREAD_SAFE -PTHREAD_LIBS?= -pthread -.elif ${OSVERSION} < 502102 -PTHREAD_CFLAGS?= -D_THREAD_SAFE -PTHREAD_LIBS?= -lc_r -.else -PTHREAD_CFLAGS?= -PTHREAD_LIBS?= -lpthread -.endif - -.if defined(FETCH_USE_CURL) && exists(${LOCALBASE}/bin/curl) -FETCH_CMD?= ${LOCALBASE}/bin/curl --create-dirs -L --max-redirs 1 -C - -.elif defined(FETCH_USE_WGET) && exists(${LOCALBASE}/bin/wget) -FETCH_CMD?= ${LOCALBASE}/bin/wget -c -t 1 -.else -FETCH_CMD?= /usr/bin/fetch -ARr -.endif - -TOUCH?= /usr/bin/touch -TOUCH_FLAGS?= -f - -DISTORIG?= .bak.orig -PATCH?= /usr/bin/patch -PATCH_STRIP?= -p0 -PATCH_DIST_STRIP?= -p0 -.if defined(PATCH_DEBUG) -PATCH_DEBUG_TMP= yes -PATCH_ARGS?= -d ${PATCH_WRKSRC} -E ${PATCH_STRIP} -PATCH_DIST_ARGS?= -b ${DISTORIG} -d ${PATCH_WRKSRC} -E ${PATCH_DIST_STRIP} -.else -PATCH_DEBUG_TMP= no -PATCH_ARGS?= -d ${PATCH_WRKSRC} --forward --quiet -E ${PATCH_STRIP} -PATCH_DIST_ARGS?= -b ${DISTORIG} -d ${PATCH_WRKSRC} --forward --quiet -E ${PATCH_DIST_STRIP} -.endif -.if defined(BATCH) -PATCH_ARGS+= --batch -PATCH_DIST_ARGS+= --batch -.endif - -# Prevent breakage with VERSION_CONTROL=numbered -PATCH_ARGS+= -V simple - -.if defined(PATCH_CHECK_ONLY) -PATCH_ARGS+= -C -PATCH_DIST_ARGS+= -C -.endif - -.if ${PATCH} == "/usr/bin/patch" -PATCH_ARGS+= -b .orig -PATCH_DIST_ARGS+= -b .orig -.endif - -.if exists(/bin/tar) -TAR?= /bin/tar -.else -TAR?= /usr/bin/tar -.endif - -# EXTRACT_SUFX is defined in .pre.mk section -.if defined(USE_ZIP) -EXTRACT_CMD?= ${UNZIP_CMD} -EXTRACT_BEFORE_ARGS?= -qo -EXTRACT_AFTER_ARGS?= -d ${WRKDIR} -.else -EXTRACT_BEFORE_ARGS?= -dc -EXTRACT_AFTER_ARGS?= | ${TAR} -xf - -.if defined(USE_BZIP2) -EXTRACT_CMD?= ${BZIP2_CMD} -.else -EXTRACT_CMD?= ${GZIP_CMD} -.endif -.endif - -# Figure out where the local mtree file is -.if !defined(MTREE_FILE) && !defined(NO_MTREE) -.if defined(USE_X_PREFIX) -.if ${X_WINDOW_SYSTEM:L} == xfree86-3 -MTREE_FILE= /etc/mtree/BSD.x11.dist -.else -MTREE_FILE= /etc/mtree/BSD.x11-4.dist -.endif -.else -.if ${PREFIX} == /usr -MTREE_FILE= /etc/mtree/BSD.usr.dist -.else -MTREE_FILE= /etc/mtree/BSD.local.dist -.endif -.endif -.endif -MTREE_CMD?= /usr/sbin/mtree -MTREE_ARGS?= -U ${MTREE_FOLLOWS_SYMLINKS} -f ${MTREE_FILE} -d -e -p - -# Determine whether or not we can use rootly owner/group functions. -.if ${UID} == 0 -_BINOWNGRP= -o ${BINOWN} -g ${BINGRP} -_SHROWNGRP= -o ${SHAREOWN} -g ${SHAREGRP} -_MANOWNGRP= -o ${MANOWN} -g ${MANGRP} -.else -_BINOWNGRP= -_SHROWNGRP= -_MANOWNGRP= -.endif - -# A few aliases for *-install targets -INSTALL_PROGRAM= \ - ${INSTALL} ${COPY} ${STRIP} ${_BINOWNGRP} -m ${BINMODE} -INSTALL_SCRIPT= \ - ${INSTALL} ${COPY} ${_BINOWNGRP} -m ${BINMODE} -INSTALL_DATA= \ - ${INSTALL} ${COPY} ${_SHROWNGRP} -m ${SHAREMODE} -INSTALL_MAN= \ - ${INSTALL} ${COPY} ${_MANOWNGRP} -m ${MANMODE} - -INSTALL_MACROS= BSD_INSTALL_PROGRAM="${INSTALL_PROGRAM}" \ - BSD_INSTALL_SCRIPT="${INSTALL_SCRIPT}" \ - BSD_INSTALL_DATA="${INSTALL_DATA}" \ - BSD_INSTALL_MAN="${INSTALL_MAN}" -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) -.undef NO_PACKAGE -.endif - -COMMENTFILE?= ${PKGDIR}/pkg-comment -DESCR?= ${PKGDIR}/pkg-descr -PLIST?= ${PKGDIR}/pkg-plist -PKGINSTALL?= ${PKGDIR}/pkg-install -PKGDEINSTALL?= ${PKGDIR}/pkg-deinstall -PKGREQ?= ${PKGDIR}/pkg-req -PKGMESSAGE?= ${PKGDIR}/pkg-message - -TMPPLIST?= ${WRKDIR}/.PLIST.mktmp - -.if ${OSVERSION} >= 400000 -.for _CATEGORY in ${CATEGORIES} -PKGCATEGORY?= ${_CATEGORY} -.endfor -_PORTDIRNAME= ${.CURDIR:T} -PORTDIRNAME?= ${_PORTDIRNAME} -PKGORIGIN?= ${PKGCATEGORY}/${PORTDIRNAME} -.endif - -.if exists(${LOCALBASE}/sbin/pkg_info) -PKG_CMD?= ${LOCALBASE}/sbin/pkg_create -PKG_ADD?= ${LOCALBASE}/sbin/pkg_add -PKG_DELETE?= ${LOCALBASE}/sbin/pkg_delete -PKG_INFO?= ${LOCALBASE}/sbin/pkg_info -PKG_VERSION?= ${LOCALBASE}/sbin/pkg_version -.elif ${OSVERSION} < 460102 && ${PKGORIGIN} != "sysutils/pkg_install" -BUILD_DEPENDS+= ${LOCALBASE}/sbin/pkg_info:${PORTSDIR}/sysutils/pkg_install -PKG_CMD?= ${LOCALBASE}/sbin/pkg_create -PKG_ADD?= ${LOCALBASE}/sbin/pkg_add -PKG_DELETE?= ${LOCALBASE}/sbin/pkg_delete -PKG_INFO?= ${LOCALBASE}/sbin/pkg_info -PKG_VERSION?= ${LOCALBASE}/sbin/pkg_version -.else -PKG_CMD?= /usr/sbin/pkg_create -PKG_ADD?= /usr/sbin/pkg_add -PKG_DELETE?= /usr/sbin/pkg_delete -PKG_INFO?= /usr/sbin/pkg_info -PKG_VERSION?= /usr/sbin/pkg_version -.endif - -# Does the pkg_create tool support conflict checking? -# XXX Slow? -.if !defined(PKGINSTALLVER) -PKGINSTALLVER!= ${PKG_INFO} -P 2>/dev/null | ${SED} -e 's/.*: //' -.endif -.if ${PKGINSTALLVER} < 20030417 -DISABLE_CONFLICTS= YES -.endif -.if !defined(PKG_ARGS) -PKG_ARGS= -v -c -${COMMENT:Q} -d ${DESCR} -f ${TMPPLIST} -p ${PREFIX} -P "`cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} package-depends | ${GREP} -v -E ${PKG_IGNORE_DEPENDS} | ${SORT} -u`" ${EXTRA_PKG_ARGS} $${_LATE_PKG_ARGS} -.if !defined(NO_MTREE) -PKG_ARGS+= -m ${MTREE_FILE} -.endif -.if defined(PKGORIGIN) -PKG_ARGS+= -o ${PKGORIGIN} -.endif -.if defined(CONFLICTS) && !defined(DISABLE_CONFLICTS) -PKG_ARGS+= -C "${CONFLICTS}" -.endif -.if defined(DESTDIR) -PKG_ARGS+= -S "${DESTDIR}" -.endif -.endif -.if defined(PKG_NOCOMPRESS) -PKG_SUFX?= .tar -.else -.if ${OSVERSION} >= 500039 -PKG_SUFX?= .tbz -.else -PKG_SUFX?= .tgz -.endif -.endif -# where pkg_add records its dirty deeds. -PKG_DBDIR?= /var/db/pkg -_PKG_DBDIR?= ${DESTDIR}${PKG_DBDIR} - -MOTIFLIB?= -L${X11BASE}/lib -lXm -lXp - -ALL_TARGET?= all -INSTALL_TARGET?= install - -# This is a mid-term solution patch while pkg-comment files are -# phased out. -# The final simpler patch will come afterwards -.if !defined(COMMENT) -check-makevars:: - @${ECHO_CMD} 'Makefile error: there is no COMMENT variable defined' - @${ECHO_CMD} 'for this port. Please, rectify this.' - @${FALSE} -.else -.if exists(${COMMENTFILE}) -check-makevars:: - @${ECHO_CMD} 'Makefile error: There is a COMMENTFILE in this port.' - @${ECHO_CMD} 'COMMENTFILEs have been deprecated in' - @${ECHO_CMD} 'favor of COMMENT variables.' - @${ECHO_CMD} 'Please, rectify this.' - @${FALSE} -.endif -.endif - -# Popular master sites -.include "${PORTSDIR}/Mk/bsd.sites.mk" - -# The primary backup site. -MASTER_SITE_BACKUP?= \ - ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ -MASTER_SITE_BACKUP:= ${MASTER_SITE_BACKUP:S^\${DIST_SUBDIR}/^^} - -# If the user has MASTER_SITE_FREEBSD set, go to the FreeBSD repository -# for everything, but don't search it twice by appending it to the end. -.if defined(MASTER_SITE_FREEBSD) -_MASTER_SITE_OVERRIDE:= ${MASTER_SITE_BACKUP} -_MASTER_SITE_BACKUP:= # empty -.else -_MASTER_SITE_OVERRIDE= ${MASTER_SITE_OVERRIDE} -_MASTER_SITE_BACKUP= ${MASTER_SITE_BACKUP} -.endif - -# Search CDROM first if mounted -.for MOUNTPT in ${CD_MOUNTPTS} -.if exists(${MOUNTPT}/ports/distfiles) -_MASTER_SITE_OVERRIDE:= file:${MOUNTPT}/ports/distfiles/${DIST_SUBDIR}/ ${_MASTER_SITE_OVERRIDE} -.endif -.endfor - -DISTFILES?= ${DISTNAME}${EXTRACT_SUFX} - -.if !defined(DISTFILES_KEEP_QUOTING) -_DISTFILES= ${DISTFILES:C/:[^:]+$//:C/\\\\(.)/\1/g} -_PATCHFILES= ${PATCHFILES:C/:[^:]+$//:C/\\\\(.)/\1/g} -.else -_DISTFILES= ${DISTFILES:C/:[^:]+$//} -_PATCHFILES= ${PATCHFILES:C/:[^:]+$//} -.endif - -# -# Sort the master site list according to the patterns in MASTER_SORT -# -MASTER_SORT?= -MASTER_SORT_REGEX?= -MASTER_SORT_REGEX+= ${MASTER_SORT:S|.|\\.|g:S|^|://[^/]*|:S|$|/|} - -MASTER_SORT_AWK= BEGIN { RS = " "; ORS = " "; IGNORECASE = 1 ; gl = "${MASTER_SORT_REGEX:S|\\|\\\\|g}"; } -.for srt in ${MASTER_SORT_REGEX} -MASTER_SORT_AWK+= /${srt:S|/|\\/|g}/ { good["${srt:S|\\|\\\\|g}"] = good["${srt:S|\\|\\\\|g}"] " " $$0 ; next; } -.endfor -MASTER_SORT_AWK+= { rest = rest " " $$0; } END { n=split(gl, gla); for(i=1;i<=n;i++) { print good[gla[i]]; } print rest; } - -.if defined(MASTER_SORT_FPING) && exists(${PERL5}) && exists(${LOCALBASE}/sbin/fping) -MASTER_SORT_CMD?= ${PERL5} -w ${PORTSDIR}/devel/portmk/scripts/ranksites-fping.pl -.elif defined(MASTER_SORT_GEOIP) && defined(CC_HOME) && exists(${PERL5}) && exists(${SITE_PERL}/${PERL_ARCH}/Geo/IP.pm) -MASTER_SORT_CMD?= ${PERL5} -w ${PORTSDIR}/devel/portmk/scripts/ranksites-geoip.pl -MASTER_SORT_ENV+= CC_HOME=${CC_HOME} -.endif - -# This is what is actually going to be extracted, and is overridable -# by user. -EXTRACT_ONLY?= ${_DISTFILES} - -# Documentation -MAINTAINER?= ports@FreeBSD.org - -.PHONY: maintainer -.if !target(maintainer) -maintainer: - @${ECHO_CMD} "${MAINTAINER}" -.endif - -.PHONY: check-makefile -.if !target(check-makefile) -check-makefile:: - @${DO_NADA} -.endif - -.PHONY: check-categories -.if !defined(CATEGORIES) -check-categories: - @${ECHO_CMD} "${PKGNAME}: Makefile error: CATEGORIES is mandatory." - @${FALSE} -.else - -VALID_CATEGORIES+= accessibility afterstep arabic archivers astro audio \ - benchmarks biology cad chinese comms converters databases \ - deskutils devel dns editors elisp emulators finance french ftp \ - games german gnome graphics haskell hebrew hungarian \ - ipv6 irc japanese java kde korean lang linux lisp \ - mail math mbone misc multimedia net net-mgmt news \ - offix palm parallel pear perl5 picobsd plan9 polish portuguese print \ - python ruby russian \ - scheme science security shells sysutils \ - tcl76 tcl80 tcl81 tcl82 tcl83 tcl84 textproc \ - tk42 tk80 tk82 tk83 tk84 tkstep80 \ - ukrainian vietnamese windowmaker www \ - x11 x11-clocks x11-fm x11-fonts x11-servers x11-themes x11-toolkits \ - x11-wm xfce zope - -check-categories: -.for cat in ${CATEGORIES} - @if ${ECHO_CMD} ${VALID_CATEGORIES} | ${GREP} -wq ${cat}; then \ - ${TRUE}; \ - else \ - ${ECHO_CMD} "${PKGNAME}: Makefile error: category ${cat} not in list of valid categories."; \ - ${FALSE}; \ - fi -.endfor -.endif - -.PHONY: check-makevars -.if !target(check-makevars) -check-makevars:: - @${DO_NADA} -.endif - -.PHONY: check-depends -.if !target(check-depends) -check-depends: - @${DO_NADA} -.endif - -PKGREPOSITORYSUBDIR?= All -PKGREPOSITORY?= ${PACKAGES}/${PKGREPOSITORYSUBDIR} -.if exists(${PACKAGES}) -PKGFILE?= ${PKGREPOSITORY}/${PKGNAME}${PKG_SUFX} -.else -PKGFILE?= ${.CURDIR}/${PKGNAME}${PKG_SUFX} -.endif - -# The "latest version" link -- ${PKGNAME} minus everthing after the last '-' -PKGLATESTREPOSITORY?= ${PACKAGES}/Latest -PKGBASE?= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX} -LATEST_LINK?= ${PKGBASE} -PKGLATESTFILE= ${PKGLATESTREPOSITORY}/${LATEST_LINK}${PKG_SUFX} - -.if defined(PERL_CONFIGURE) -CONFIGURE_ARGS+= CC="${CC}" CCFLAGS="${CFLAGS}" PREFIX="${PREFIX}" \ - INSTALLPRIVLIB="${PREFIX}/lib" INSTALLARCHLIB="${PREFIX}/lib" -CONFIGURE_SCRIPT?= Makefile.PL -MAN3PREFIX?= ${PREFIX}/lib/perl5/${PERL_VERSION} -.undef HAS_CONFIGURE -.endif - -CONFIGURE_SCRIPT?= configure -CONFIGURE_TARGET?= ${MACHINE_ARCH}-portbld-freebsd${OSREL} -CONFIGURE_LOG?= config.log - -# A default message to print if do-configure fails. -CONFIGURE_FAIL_MESSAGE?= "Please report the problem to ${MAINTAINER} [maintainer] and attach the \"${CONFIGURE_WRKSRC}/${CONFIGURE_LOG}\" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. an \`ls ${PKG_DBDIR}\`)." - -.if defined(GNU_CONFIGURE) -# Maximum command line length -.if !defined(CONFIGURE_MAX_CMD_LEN) -.if exists(/sbin/sysctl) -CONFIGURE_MAX_CMD_LEN!= /sbin/sysctl -n kern.argmax -.else -CONFIGURE_MAX_CMD_LEN!= /usr/sbin/sysctl -n kern.argmax -.endif -.endif -CONFIGURE_ARGS+= --prefix=${PREFIX} ${CONFIGURE_TARGET} -CONFIGURE_ENV+= lt_cv_sys_max_cmd_len=${CONFIGURE_MAX_CMD_LEN} -HAS_CONFIGURE= yes -.endif - -# Passed to most of script invocations -SCRIPTS_ENV+= CURDIR=${MASTERDIR} DISTDIR=${DISTDIR} \ - WRKDIR=${WRKDIR} WRKSRC=${WRKSRC} PATCHDIR=${PATCHDIR} \ - SCRIPTDIR=${SCRIPTDIR} FILESDIR=${FILESDIR} \ - PORTSDIR=${PORTSDIR} DEPENDS="${DEPENDS}" \ - PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} X11BASE=${X11BASE} \ - DESTDIR=${DESTDIR} - -.if defined(BATCH) -SCRIPTS_ENV+= BATCH=yes -.endif - -.if ${PREFIX} == /usr -MANPREFIX?= /usr/share -.else -MANPREFIX?= ${PREFIX} -.endif - -.for sect in 1 2 3 4 5 6 7 8 9 -MAN${sect}PREFIX?= ${MANPREFIX} -.endfor -MANLPREFIX?= ${MANPREFIX} -MANNPREFIX?= ${MANPREFIX} - -MANLANG?= "" # english only by default - -.if !defined(NOMANCOMPRESS) -MANEXT= .gz -.endif - -.if (defined(MLINKS) || defined(_MLINKS_PREPEND)) && !defined(_MLINKS) -__pmlinks!= ${ECHO_CMD} '${MLINKS:S/ / /}' | ${AWK} \ - '{ if (NF % 2 != 0) { print "broken"; exit; } \ - for (i=1; i<=NF; i++) { \ - if ($$i ~ /^-$$/ && i != 1 && i % 2 != 0) \ - { $$i = $$(i-2); printf " " $$i " "; } \ - else if ($$i ~ /^[^ ]+\.[1-9ln][^. ]*$$/ || $$i ~ /^\//) \ - printf " " $$i " "; \ - else \ - { print "broken"; exit; } \ - } \ - }' | ${SED} -e 's \([^/ ][^ ]*\.\(.\)[^. ]*\) $${MAN\2PREFIX}/$$$$$$$${__lang}/man\2/\1${MANEXT}g' -e 's/ //g' -e 's/MANlPREFIX/MANLPREFIX/g' -e 's/MANnPREFIX/MANNPREFIX/g' -.if ${__pmlinks:Mbroken} == "broken" -check-makevars:: - @${ECHO_CMD} "${PKGNAME}: Makefile error: unable to parse MLINKS." - @${FALSE} -.endif -_MLINKS= ${_MLINKS_PREPEND} -# XXX 20040119 This next line should read: -# .for lang in ${MANLANG:S%^%man/%:S%^man/""$%man%} -# but there is currently a bug in make(1) that prevents the double-quote -# substitution from working correctly. Once that problem is addressed, -# and has had a enough time to mature, this hack should be removed. -.for lang in ${MANLANG:S%^%man/%:S%^man/""$%man%:S%^man/"$%man%} -.for ___pmlinks in ${__pmlinks} -.for __lang in ${lang} -_MLINKS+= ${___pmlinks:S// /g} -.endfor -.endfor -.endfor -.endif -_COUNT=0 -.for ___tpmlinks in ${_MLINKS} -.if ${_COUNT} == "1" -_TMLINKS+= ${___tpmlinks} -_COUNT=0 -.else -_COUNT=1 -.endif -.endfor - -# XXX 20040119 This next line should read: -# .for manlang in ${MANLANG:S%^%man/%:S%^man/""$%man%} -# but there is currently a bug in make(1) that prevents the double-quote -# substitution from working correctly. Once that problem is addressed, -# and has had a enough time to mature, this hack should be removed. -.for manlang in ${MANLANG:S%^%man/%:S%^man/""$%man%:S%^man/"$%man%} - -.for sect in 1 2 3 4 5 6 7 8 9 L N -.if defined(MAN${sect}) -_MANPAGES+= ${MAN${sect}:S%^%${MAN${sect}PREFIX}/${manlang}/man${sect:L}/%} -.endif -.endfor - -.endfor - -.if !defined(_TMLINKS) -_TMLINKS= -.endif - -.if defined(_MANPAGES) - -.if defined(NOMANCOMPRESS) -__MANPAGES:= ${_MANPAGES:S%^${PREFIX}/%%} -.else -__MANPAGES:= ${_MANPAGES:S%^${PREFIX}/%%:S%$%.gz%} -.endif - -.if ${MANCOMPRESSED} == "yes" -_MANPAGES:= ${_MANPAGES:S%$%.gz%} -.endif - -.endif - -.if ${PREFIX} == /usr -INFO_PATH?= share/info -.else -INFO_PATH?= info -.endif - -.if ${X_WINDOW_SYSTEM:L} == xfree86-3 -XFREE86_HTML_MAN= no -.else -.if defined(USE_IMAKE) -XFREE86_HTML_MAN?= yes -.else -XFREE86_HTML_MAN?= no -.endif -.endif - -DOCSDIR?= ${PREFIX}/share/doc/${PORTNAME} -EXAMPLESDIR?= ${PREFIX}/share/examples/${PORTNAME} -DATADIR?= ${PREFIX}/share/${PORTNAME} - -PLIST_SUB+= DOCSDIR="${DOCSDIR:S,^${PREFIX}/,,}" \ - EXAMPLESDIR="${EXAMPLESDIR:S,^${PREFIX}/,,}" \ - DATADIR="${DATADIR:S,^${PREFIX}/,,}" - -# Put this as far down as possible so it will catch all PLIST_SUB definitions. - -.if defined(INSTALLS_SHLIB) -LDCONFIG_DIRS?= %%PREFIX%%/lib -LDCONFIG_PLIST!= ${ECHO_CMD} ${LDCONFIG_DIRS} | ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -LDCONFIG_RUNLIST!= ${ECHO_CMD} ${LDCONFIG_PLIST} | ${SED} -e "s!%D!${PREFIX}!g" -.endif - -.MAIN: all - -################################################################ -# 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. -# -# 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 on an ELF machine if it's broken for ELF. -# -# Don't build a port if it's broken, unless we're running a parallel -# build (in case it's fixed). -# -# Don't build a port if it's forbidden for whatever reason. -# -# Don't build a port if the system is too old. -################################################################ - -.if ${OSVERSION} < 420000 -# You need an upgrade kit or make world newer than this -IGNORE= ": Your system is too old to use this bsd.port.mk. You need a fresh make world or an upgrade kit. Please go to http://www.FreeBSD.org/ports/ or a mirror site and follow the instructions" -.endif - -.if defined(ONLY_FOR_ARCHS) -.for __ARCH in ${ONLY_FOR_ARCHS} -.if ${MACHINE_ARCH:M${__ARCH}} != "" -__ARCH_OK?= 1 -.endif -.endfor -.else -__ARCH_OK?= 1 -.endif - -.if defined(NOT_FOR_ARCHS) -.for __NARCH in ${NOT_FOR_ARCHS} -.if ${MACHINE_ARCH:M${__NARCH}} != "" -.undef __ARCH_OK -.endif -.endfor -.endif - -.if !defined(__ARCH_OK) -.if defined(ONLY_FOR_ARCHS) -IGNORE= "is only for ${ONLY_FOR_ARCHS}," -.else # defined(NOT_FOR_ARCHS) -IGNORE= "does not run on ${NOT_FOR_ARCHS}," -.endif -IGNORE+= "and you are running ${ARCH}" -.endif - -.if !defined(NO_IGNORE) -.if (defined(IS_INTERACTIVE) && defined(BATCH)) -IGNORE= "is an interactive port" -.elif (!defined(IS_INTERACTIVE) && defined(INTERACTIVE)) -IGNORE= "is not an interactive port" -.elif (defined(NO_CDROM) && defined(FOR_CDROM)) -IGNORE= "may not be placed on a CDROM: ${NO_CDROM}" -.elif (defined(RESTRICTED) && defined(NO_RESTRICTED)) -IGNORE= "is restricted: ${RESTRICTED}" -.elif defined(BROKEN) -.if !defined(TRYBROKEN) -IGNORE= "is marked as broken: ${BROKEN}" -.endif -.elif defined(FORBIDDEN) -IGNORE= "is forbidden: ${FORBIDDEN}" -.endif - -.if (defined(MANUAL_PACKAGE_BUILD) && defined(PACKAGE_BUILDING) && !defined(PARALLEL_PACKAGE_BUILD)) -IGNORE= "has to be built manually: ${MANUAL_PACKAGE_BUILD}" -clean: - @${IGNORECMD} -.endif - -.if defined(IGNORE) -.if defined(IGNORE_SILENT) -IGNORECMD= ${DO_NADA} -.else -IGNORECMD= ${ECHO_MSG} "===> ${PKGNAME} ${IGNORE}." -.endif - -.for target in check-sanity fetch checksum extract patch configure all build install reinstall package -${target}: - @${IGNORECMD} -.if defined(INSTALLS_DEPENDS) - @${FALSE} -.endif -.endfor - -.endif - -.endif - -.if defined(IGNORE) || defined(NO_PACKAGE) -ignorelist: package-name -.else -ignorelist: - @${DO_NADA} -.endif - -################################################################ -# Clean directories for ftp or CDROM. -################################################################ - -.if defined(RESTRICTED) -clean-restricted: delete-distfiles delete-package -clean-restricted-list: delete-distfiles-list delete-package-list -RESTRICTED_FILES?= ${_DISTFILES} ${_PATCHFILES} -.else -clean-restricted: -clean-restricted-list: -.endif - -.if defined(NO_CDROM) -clean-for-cdrom: delete-distfiles delete-package -clean-for-cdrom-list: delete-distfiles-list delete-package-list -RESTRICTED_FILES?= ${_DISTFILES} ${_PATCHFILES} -.else -clean-for-cdrom: -clean-for-cdrom-list: -.endif - -.if defined(ALL_HOOK) -all: - @cd ${.CURDIR} && ${SETENV} CURDIR=${.CURDIR} DISTNAME=${DISTNAME} \ - DISTDIR=${DISTDIR} WRKDIR=${WRKDIR} WRKSRC=${WRKSRC} \ - PATCHDIR=${PATCHDIR} SCRIPTDIR=${SCRIPTDIR} \ - FILESDIR=${FILESDIR} PORTSDIR=${PORTSDIR} PREFIX=${PREFIX} \ - DESTDIR=${DESTDIR} \ - DEPENDS="${DEPENDS}" BUILD_DEPENDS="${BUILD_DEPENDS}" \ - RUN_DEPENDS="${RUN_DEPENDS}" X11BASE=${X11BASE} \ - CONFLICTS="${CONFLICTS}" \ - ${ALL_HOOK} -.endif - -.if !target(all) -all: build -.endif - -.if !defined(DEPENDS_TARGET) -.if make(reinstall) -DEPENDS_TARGET= reinstall -.else -DEPENDS_TARGET= install -.endif -.if defined(DEPENDS_CLEAN) -DEPENDS_TARGET+= clean -DEPENDS_ARGS+= NOCLEANDEPENDS=yes -.endif -.else -DEPENDS_ARGS+= FORCE_PKG_REGISTER=yes -.endif -.if defined(DEPENDS) -# pretty much guarantees overwrite of existing installation -.MAKEFLAGS: FORCE_PKG_REGISTER=yes -.endif - -################################################################ -# -# Do preliminary work to detect if we need to run the config -# target or not. -# -################################################################ -.if (defined(_OPTIONSNG_READ) || !defined(OPTIONS) || defined(CONFIG_DONE) || \ - defined(PACKAGE_BUILDING) || defined(BATCH) || \ - exists(${_OPTIONSFILE}) || exists(${_OPTIONSFILE}.local)) -_OPTIONS_OK=yes -.endif - -################################################################ -# 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 -.if defined(NO_CHECKSUM) && !target(checksum) && defined(_OPTIONS_OK) -checksum: fetch - @${DO_NADA} -.endif - -# Disable build -.if defined(NO_BUILD) && !target(build) && defined(_OPTIONS_OK) -build: configure - @${TOUCH} ${TOUCH_FLAGS} ${BUILD_COOKIE} -.endif - -# Disable install -.if defined(NO_INSTALL) && !target(install) && defined(_OPTIONS_OK) -install: build - @${TOUCH} ${TOUCH_FLAGS} ${INSTALL_COOKIE} -.endif - -# Disable package -.if defined(NO_PACKAGE) && !target(package) && defined(_OPTIONS_OK) -package: -.if defined(IGNORE_SILENT) - @${DO_NADA} -.else - @${ECHO_MSG} "===> ${PKGNAME} may not be packaged: ${NO_PACKAGE}." -.endif -.endif - -# Disable describe -.if defined(NO_DESCRIBE) && !target(describe) -describe: - @${DO_NADA} -.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. -################################################################ - -# Pre-everything - -# XXX MCL suggests deprecating this in favor of something -# less likely to be abused by overloading -pre-everything:: - @${DO_NADA} - -buildanyway-message: -.if defined(TRYBROKEN) - @${ECHO_MSG} "Trying build of ${PKGNAME} even though it is marked BROKEN." -.else - @${DO_NADA} -.endif - -options-message: -.if defined(GNOME_OPTION_MSG) && (!defined(PACKAGE_BUILDING) || !defined(BATCH)) - @for m in ${GNOME_OPTION_MSG}; do \ - ${ECHO_MSG} $$m; \ - done -.else - @${DO_NADA} -.endif -.if defined(_OPTIONSNG_READ) -.if ${_OPTIONSNG_READ} == "default" - @${ECHO_MSG} "===> Building with default configuration, \`make config' to customize." -.else - @${ECHO_MSG} "===> Building with saved configuration for ${_OPTIONSNG_READ}, \`make config' to change." -.endif -.elif defined(_OPTIONS_READ) - @${ECHO_MSG} "===> Found saved configuration for ${_OPTIONS_READ}" -.if ${OPTIONSFILE} != ${_OPTIONSFILE} - @${ECHO_MSG} "===> *** CAUTION *** Using wrong configuration file ${_OPTIONSFILE}" -.endif -.endif - -# Warn user about deprecated packages. Advisory only. - -.if !target(check-deprecated) -check-deprecated: -.if defined(DEPRECATED) - @${ECHO_MSG} "===> NOTICE:" - @${ECHO_MSG} - @${ECHO_MSG} "This port is deprecated; you may wish to reconsider installing it:" - @${ECHO_MSG} - @${ECHO_MSG} "${DEPRECATED}." - @${ECHO_MSG} -.if defined(EXPIRATION_DATE) - @${ECHO_MSG} "It is scheduled to be removed on or after ${EXPIRATION_DATE}." - @${ECHO_MSG} -.endif -.endif -.endif - -# Check if the port is listed in the vulnerability database - -.if ${PKGINSTALLVER} < 20040623 || ${OSVERSION} < 420001 || ${OSVERSION} >= 500000 && ${OSVERSION} < 500014 -DISABLE_VULNERABILITIES= yes -.endif - -AUDITFILE?= /var/db/portaudit/auditfile.tbz -AUDITURL?= http://www.FreeBSD.org/ports -AUDITEXPIRY?= 14 -_EXTRACT_AUDITFILE= ${TAR} -jxOf "${AUDITFILE}" auditfile - -.PHONY: update-auditfile -update-auditfile: -.if !defined(DISABLE_VULNERABILITIES) && !defined(PACKAGE_BUILDING) - @audit_expired=${TRUE}; \ - if [ -f "${AUDITFILE}" ]; then \ - audit_created=`${_EXTRACT_AUDITFILE} | \ - ${SED} -nEe "1s/^#CREATED: *([0-9]{4})-?([0-9]{2})-?([0-9]{2}).*$$/\1\2\3/p"`; \ - audit_expiry=`${DATE} -u -v-${AUDITEXPIRY}d "+%Y%m%d"`; \ - if [ "$$audit_created" -lt "$$audit_expiry" ]; then \ - ${ECHO_MSG} ">> Vulnerability database out of date."; \ - else \ - audit_expired=${FALSE}; \ - fi; \ - fi; \ - if $$audit_expired; then \ - if [ ! -w "${AUDITFILE:H}" -a `${ID} -u` != 0 ]; then \ - if [ -z "${INSTALL_AS_USER}" ]; then \ - ${ECHO_MSG} "===> Switching to root credentials to fetch the vulnerability database."; \ - ${SU_CMD} "cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${.TARGET}"; \ - ${ECHO_MSG} "===> Returning to user credentials"; \ - else \ - ${ECHO_MSG} "===> Can't fetch the vulnerability database."; \ - fi; \ - else \ - ${ECHO_MSG} ">> Fetching vulnerability database from ${AUDITURL}."; \ - if [ -f "${AUDITFILE}" ]; then \ - ${MV} -f "${AUDITFILE}" "${AUDITFILE}.old"; \ - else \ - ${MKDIR} "${AUDITFILE:H}"; \ - fi; \ - if ${SETENV} ${FETCH_ENV} ${FETCH_CMD} -o "${AUDITFILE}" "${AUDITURL}/${AUDITFILE:T}"; then \ - ${CHMOD} a+r "${AUDITFILE}"; \ - if [ -f "${AUDITFILE}.old" ]; then \ - ${RM} -f "${AUDITFILE}.old"; \ - fi; \ - else \ - if [ -f "${AUDITFILE}.old" ]; then \ - ${ECHO_MSG} ">> Failed, using old database."; \ - ${MV} -f "${AUDITFILE}.old" "${AUDITFILE}"; \ - fi; \ - fi; \ - fi; \ - fi -.else - @${DO_NADA} -.endif - -.PHONY: check-vulnerable -check-vulnerable: update-auditfile -.if !defined(DISABLE_VULNERABILITIES) && !defined(PACKAGE_BUILDING) - @if [ -r "${AUDITFILE}" ]; then \ - if vlist=`${_EXTRACT_AUDITFILE} | ${GREP} -v '^#' | ${PKG_VERSION} -T '${PKGNAME}' -`; then \ - ${ECHO_MSG} "===> ${PKGNAME} has known vulnerabilities:"; \ - ${ECHO_MSG} "$$vlist" | ${AWK} -F\| '{ \ - print ">> " $$3 "."; \ - split($$2, ref, / /); \ - for(r in ref) \ - print " Reference: <" ref[r] ">" \ - }'; \ - ${ECHO_MSG} ">> Please update your ports tree and try again."; \ - exit 1; \ - fi; \ - else \ - ${ECHO_MSG} "===> Vulnerability check disabled, database not found."; \ - fi -.else - @${ECHO_MSG} "===> Vulnerability check disabled." -.endif - - -# Next generation options handling - -.if exists(${PERL5}) -OPTIONS_CMD?= ${PERL} -w ${PORTSDIR}/devel/portmk/scripts/options.pl -.else -OPTIONS_CMD?= eval ${ECHO_CMD} ">> ${PKGNAME}: ${PERL5} requried, please install ${PERL_PORT}."; exit 1 -.endif - -OPTIONS_SH?= ${PORTSDIR}/devel/portmk/scripts/options.sh - -_OPTIONS_ENV= \ - CURDIR='${.CURDIR}' \ - OBJDIR='${.OBJDIR}' \ - MASTERDIR='${MASTERDIR}' \ - PKGNAME='${PKGNAME}' \ - PKGNAMESUFFIX='${PKGNAMESUFFIX}' \ - OPTIONS_MASTER='${OPTIONS_MASTER}' \ - OPTIONS_OVERRIDE='${OPTIONS_OVERRIDE}' \ - OPTIONS_FILE='${OPTIONS_FILE}' \ - OPTIONS_CMD='${OPTIONS_CMD}' - -.PHONY: config -.PHONY: showconfig -.PHONY: rmconfig -.PHONY: menuconfig - -.if defined(_OPTIONSNG_READ) - -.if !target(config) -config: - @${_OPTIONS_ENV}; \ - set -- -e; \ - . '${OPTIONS_SH}' -.endif - -.if !target(menuconfig) -menuconfig: - @${ECHO_MSG} "===> ${PKGNAME}: menuconfig is a reserved target." - @${FALSE} - @${_OPTIONS_ENV}; \ - set -- -g; \ - . '${OPTIONS_SH}' -.endif - -.if !target(rmconfig) -rmconfig: - @${ECHO_MSG} "===> ${PKGNAME}: Reverting to default configuration." - @${_OPTIONS_ENV}; \ - set -- -d; \ - . '${OPTIONS_SH}' -.endif - -.if !target(showconfig) -showconfig: - @${ECHO_MSG} "===> ${PKGNAME}: menuconfig is a reserved target." - @${FALSE} - @${_OPTIONS_ENV}; \ - set -- -l; \ - . '${OPTIONS_SH}' -.endif - -.elif !defined(OPTIONS) - -.if !target(config) -config: - @${ECHO_MSG} "===> ${PKGNAME} has no configurable options." -.endif - -.if !target(menuconfig) -menuconfig: - @${ECHO_MSG} "===> ${PKGNAME} has no configurable options." -.endif - -.if !target(rmconfig) -rmconfig: - @${ECHO_MSG} "===> ${PKGNAME} has no configurable options." -.endif - -.if !target(showconfig) -showconfig: - @${ECHO_MSG} "===> ${PKGNAME} has no configurable options." -.endif - -.else - -menuconfig: config - @${DO_NADA} - -.endif - -.PHONY: makeconfig -.if !target(makeconfig) -makeconfig: - @${_OPTIONS_ENV}; \ - set -- -c; \ - . '${OPTIONS_SH}' -.endif - -.PHONY: config-recursive -.if !target(config-recursive) -config-recursive: - @${ECHO_MSG} "===> ${PKGNAME}: config-recursive is a reserved target." - @${FALSE} -.endif - -# New style distfile handling - -DISTFILES_SH?= ${PORTSDIR}/devel/portmk/scripts/distfiles.sh - -DISTINFO_ALGORITHMS?= MD5 -VALID_ALGORITHMS= MD5 SHA1 RMD160 - -MK_FILE?= ${MASTERDIR}/Makefile - -.if !defined(DISTFILES_KEEP_QUOTING) -_FETCHDISTFILES_ENV= \ - DISTFILES=${DISTFILES:C/\\\\(.)/\1/g:Q}; \ - PATCHFILES=${PATCHFILES:C/\\\\(.)/\1/g:Q} -.else -_FETCHDISTFILES_ENV= \ - DISTFILES=${DISTFILES:Q}; \ - PATCHFILES=${PATCHFILES:Q} -.endif -.for env in \ - MASTER_SITES MASTER_SITE_SUBDIR PATCH_SITES PATCH_SITE_SUBDIR \ - _MASTER_SITE_BACKUP _MASTER_SITE_OVERRIDE \ - DISABLE_SIZE DISTDIR DISTINFO_ALGORITHMS DISTINFO_LABEL \ - DIST_SUBDIR ECHO_MSG FETCH_AFTER_ARGS FETCH_BEFORE_ARGS \ - FETCH_CMD FETCH_SYMLINK_DISTFILES IGNOREFILES LOCALBASE \ - MASTER_SORT_AWK MASTER_SORT_CMD MASTER_SORT_ENV MD5_FILE \ - MK_FILE NO_CHECKSUM NO_SIZE OSVERSION PERL5 VALID_ALGORITHMS -_FETCHDISTFILES_ENV+= ; ${env}='${${env}}' -.endfor -.if ${OSVERSION} >= 460000 # XXX This does not work with older make(1)s -.for env in ${VALID_ALGORITHMS} SIZE -_FETCHDISTFILES_ENV+= ; DISTINFO_${env}='${DISTINFO${DISTINFO_LABEL:C/^./_&/}_${env}}' -.endfor -.endif - -.PHONY: do-fetch -.if !target(do-fetch) -do-fetch: - @${_FETCHDISTFILES_ENV}; \ - set -- -f; \ - . '${DISTFILES_SH}' -.endif - -.PHONY: checksum -.if !target(checksum) -checksum: fetch - @${DO_NADA} -.endif - -.PHONY: makesum -.if !target(makesum) -makesum: -.if !defined(FETCH_ALL) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} FETCH_ALL=yes ${__softMAKEFLAGS} ${.TARGET} -.else - @${_FETCHDISTFILES_ENV}; \ - set -- -m; \ - . '${DISTFILES_SH}' -.endif -.endif - -.PHONY: master-sites-all -.if !target(master-sites-all) -master-sites-all: - @${_FETCHDISTFILES_ENV}; \ - set -- -t ''; \ - . '${DISTFILES_SH}' -.endif - -.PHONY: master-sites -.if !target(master-sites) -master-sites: - @${_FETCHDISTFILES_ENV}; \ - set -- -t 'DEFAULT'; \ - . '${DISTFILES_SH}' -.endif - -.PHONY: patch-sites-all -.if !target(patch-sites-all) -patch-sites-all: - @${_FETCHDISTFILES_ENV}; \ - set -- -T ''; \ - . '${DISTFILES_SH}' -.endif - -.PHONY: patch-sites -.if !target(patch-sites) -patch-sites: - @${_FETCHDISTFILES_ENV}; \ - set -- -T 'DEFAULT'; \ - . '${DISTFILES_SH}' -.endif - -.PHONY: migratesum -.if !target(migratesum) -migratesum: - @${_FETCHDISTFILES_ENV}; \ - set -- -M; \ - . '${DISTFILES_SH}' -.endif - -.PHONY: migratesum2 -.if !target(migratesum2) -migratesum2: - @${_FETCHDISTFILES_ENV}; \ - set -- -N; \ - . '${DISTFILES_SH}' -.endif - -.PHONY: checkdistsites -.if !target(checkdistsites) -checkdistsites: -.if !defined(FETCH_ALL) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} FETCH_ALL=yes ${__softMAKEFLAGS} ${.TARGET} -.else - @${_FETCHDISTFILES_ENV}; \ - set -- -F; \ - . '${DISTFILES_SH}' -.endif -.endif - -.PHONY: checkdistfiles-recursive -.if !target(checkdistfiles-recursive) -checkdistfiles-recursive: -.if defined(_ONG_REEXEC) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET} -.else - @for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \ - (cd $$dir; ${MAKE} ${__softMAKEFLAGS} checkdistfiles); \ - done -.endif -.endif - -# Prints out the total size of files missing in ${DISTDIR} - -_MISSING_SIZE_SUMMARY= \ - ${AWK} ' \ - BEGIN {t=0; f=0; u=0} \ - {if ($$1 > 0) {t+=$$1; f+=1} else {u+=1}} \ - END { \ - if (t >= 10^9) \ - s=sprintf("%.2f GBytes", t/10^9); \ - else if (t >= 10^6) \ - s=sprintf("%.2f MBytes", t/10^6); \ - else if (t >= 10^3) \ - s=sprintf("%.2f KBytes", t/10^3); \ - else \ - s=t " Bytes"; \ - msg=ENVIRON["MISSING_MSG"] \ - f " file(s) with a total size of " s; \ - if (u) msg=msg " and " u " file(s) with unknown size."; \ - print msg \ - } \ - ' - -.PHONY: missing-size -.if !target(missing-size) -missing-size: - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} print-missing-files \ - | ${SETENV} MISSING_MSG="To install ${PKGNAME}, you have to fetch " ${_MISSING_SIZE_SUMMARY} -.endif - -.PHONY: missing-recursive-size -.if !target(missing-recursive-size) -missing-recursive-size: - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} print-missing-recursive-files \ - | ${SETENV} MISSING_MSG="To install ${PKGNAME} and its dependencies, you have to fetch " ${_MISSING_SIZE_SUMMARY} -.endif - -.PHONY: print-missing-recursive-files -.if !target(print-missing-recursive-files) -print-missing-recursive-files: -.if defined(_ONG_REEXEC) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET} -.else - @for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \ - (cd $$dir; ${MAKE} print-missing-files); \ - done | ${SORT} -u +1; -.endif -.endif - -.PHONY: print-missing-files -.if !target(print-missing-files) -print-missing-files: - @${_FETCHDISTFILES_ENV}; \ - set -- -S; \ - . '${DISTFILES_SH}' -.endif - -.PHONY: fetch-list -.if !target(fetch-list) -fetch-list: - @${_FETCHDISTFILES_ENV}; \ - set -- -L; \ - . '${DISTFILES_SH}' -.endif - -# Extract - -.PHONY: do-extract -.if !target(do-extract) -do-extract: - @${RM} -rf ${WRKDIR} - @${MKDIR} ${WRKDIR} -.for file in ${EXTRACT_ONLY} - @cd ${WRKDIR} && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} "${_DISTDIR}/${file}" ${EXTRACT_AFTER_ARGS} -.endfor -.if !defined(EXTRACT_PRESERVE_OWNERSHIP) - @if [ `${ID} -u` = 0 ]; then \ - ${CHMOD} -R ug-s ${WRKDIR}; \ - ${CHOWN} -R 0:0 ${WRKDIR}; \ - fi -.endif -.endif - -# Patch - -.if !target(do-patch) -do-patch: -.if defined(PATCHFILES) - @${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}; \ - ;; \ - *.bz2) \ - ${BZCAT} "$$i" | ${PATCH} ${PATCH_DIST_ARGS}; \ - ;; \ - *) \ - ${PATCH} ${PATCH_DIST_ARGS} < "$$i"; \ - ;; \ - esac; \ - done) -.endif -.if defined(EXTRA_PATCHES) - @for i in ${EXTRA_PATCHES}; do \ - ${ECHO_MSG} "===> Applying extra patch $$i"; \ - ${PATCH} ${PATCH_ARGS} < "$$i"; \ - done -.endif - @if [ -d ${PATCHDIR} ]; then \ - if [ "`${ECHO_CMD} ${PATCHDIR}/patch-*`" != "${PATCHDIR}/patch-*" ]; then \ - ${ECHO_MSG} "===> Applying ${OPSYS} patches for ${PKGNAME}" ; \ - PATCHES_APPLIED="" ; \ - for i in ${PATCHDIR}/patch-*; do \ - case $$i in \ - *.orig|*.rej|*~|*,v) \ - ${ECHO_MSG} "===> Ignoring patchfile $$i" ; \ - ;; \ - *) \ - if [ ${PATCH_DEBUG_TMP} = yes ]; then \ - ${ECHO_MSG} "===> Applying ${OPSYS} patch $$i" ; \ - fi; \ - if ${PATCH} ${PATCH_ARGS} < "$$i" ; then \ - PATCHES_APPLIED="$$PATCHES_APPLIED $$i" ; \ - else \ - ${ECHO_MSG} `${ECHO_CMD} ">> Patch $$i failed to apply cleanly." | ${SED} "s|${PATCHDIR}/||"` ; \ - if [ x"$$PATCHES_APPLIED" != x"" ]; then \ - ${ECHO_MSG} `${ECHO_CMD} ">> Patch(es) $$PATCHES_APPLIED applied cleanly." | ${SED} "s|${PATCHDIR}/||g"` ; \ - fi; \ - ${FALSE} ; \ - fi; \ - ;; \ - esac; \ - done; \ - fi; \ - fi -.endif - -# Configure - -.if !target(do-configure) -do-configure: - @if [ -f ${SCRIPTDIR}/configure ]; then \ - cd ${.CURDIR} && ${SETENV} ${SCRIPTS_ENV} ${SH} \ - ${SCRIPTDIR}/configure; \ - fi -.if defined(GNU_CONFIGURE) - @CONFIG_GUESS_DIRS=$$(${FIND} ${WRKDIR} -name config.guess -o -name config.sub \ - | ${XARGS} -n 1 ${DIRNAME}); \ - for _D in $${CONFIG_GUESS_DIRS}; do \ - ${CP} -f ${TEMPLATES}/config.guess $${_D}/config.guess; \ - ${CHMOD} a+rx $${_D}/config.guess; \ - ${CP} -f ${TEMPLATES}/config.sub $${_D}/config.sub; \ - ${CHMOD} a+rx $${_D}/config.sub; \ - done -.endif -.if defined(HAS_CONFIGURE) - @(cd ${CONFIGURE_WRKSRC} && \ - if ! ${SETENV} CC="${CC}" CXX="${CXX}" \ - CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \ - INSTALL="/usr/bin/install -c ${_BINOWNGRP}" \ - INSTALL_DATA="${INSTALL_DATA}" \ - INSTALL_PROGRAM="${INSTALL_PROGRAM}" \ - INSTALL_SCRIPT="${INSTALL_SCRIPT}" \ - ${CONFIGURE_ENV} ./${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS}; then \ - ${ECHO_CMD} "===> Script \"${CONFIGURE_SCRIPT}\" failed unexpectedly."; \ - (${ECHO_CMD} ${CONFIGURE_FAIL_MESSAGE}) | ${FMT} 75 79 ; \ - ${FALSE}; \ - fi) -.endif -.if defined(PERL_CONFIGURE) - @cd ${CONFIGURE_WRKSRC} && \ - ${SETENV} ${CONFIGURE_ENV} \ - ${PERL5} ./${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS} -.if !defined(PERL_MODBUILD) - @cd ${CONFIGURE_WRKSRC} && \ - ${PERL5} -pi -e 's/ doc_(perl|site|\$$\(INSTALLDIRS\))_install$$//' Makefile -.if ${PERL_LEVEL} <= 500503 - @cd ${CONFIGURE_WRKSRC} && \ - ${PERL5} -pi -e 's/^(INSTALLSITELIB|INSTALLSITEARCH|SITELIBEXP|SITEARCHEXP|INSTALLMAN1DIR|INSTALLMAN3DIR) = \/usr\/local/$$1 = \$$(PREFIX)/' Makefile -.endif -.endif -.endif -.if defined(USE_IMAKE) - @(cd ${CONFIGURE_WRKSRC}; ${SETENV} ${MAKE_ENV} ${XMKMF}) -.endif -.endif - -# Build - -.PHONY: do-build -.if !target(do-build) -do-build: -.if defined(USE_GMAKE) - @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}) -.else -.if defined(PERL_MODBUILD) - @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PERL5} ${PL_BUILD} ${MAKE_ARGS} ${ALL_TARGET}) -.else - @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}) -.endif -.endif -.endif - -# Check conflicts - -.PHONY: check-conflicts -.if !target(check-conflicts) -check-conflicts: -.if defined(CONFLICTS) && !defined(DISABLE_CONFLICTS) - @found=`${SETENV} PKG_DBDIR=${_PKG_DBDIR} ${PKG_INFO} -I ${CONFLICTS:C/.+/'&'/} 2>/dev/null | ${AWK} '{print $$1}'`; \ - conflicts_with=; \ - for entry in $${found}; do \ - prfx=`${SETENV} PKG_DBDIR=${_PKG_DBDIR} ${PKG_INFO} -q -p "$${entry}" 2> /dev/null | ${SED} -ne '1s/^@cwd //p'`; \ - orgn=`${SETENV} PKG_DBDIR=${_PKG_DBDIR} ${PKG_INFO} -q -o "$${entry}" 2> /dev/null`; \ - if [ "/${PREFIX}" = "/$${prfx}" -a "/${PKGORIGIN}" != "/$${orgn}" ]; then \ - conflicts_with="$${conflicts_with} $${entry}"; \ - fi; \ - done; \ - if [ -n "$${conflicts_with}" ]; then \ - ${ECHO_MSG}; \ - ${ECHO_MSG} "===> ${PKGNAME} conflicts with installed package(s): "; \ - for entry in $${conflicts_with}; do \ - ${ECHO_MSG} " $${entry}"; \ - done; \ - ${ECHO_MSG}; \ - ${ECHO_MSG} " They install files into the same place."; \ - ${ECHO_MSG} " Please remove them first with pkg_delete(1)."; \ - exit 1; \ - fi -.endif # CONFLICTS -.endif - -# Install - -.PHONY: do-install -.if !target(do-install) -do-install: -.if defined(USE_GMAKE) - @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET}) -.if defined(USE_IMAKE) && !defined(NO_INSTALL_MANPAGES) - @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} install.man) -.if ${XFREE86_HTML_MAN:L} == yes - @${MKHTMLINDEX} ${PREFIX}/lib/X11/doc/html -.endif -.endif -.else # !defined(USE_GMAKE) -.if defined(PERL_MODBUILD) - @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PERL5} ${PL_BUILD} ${MAKE_ARGS} ${INSTALL_TARGET}) -.else - @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET}) -.if defined(USE_IMAKE) && !defined(NO_INSTALL_MANPAGES) - @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} install.man) -.if ${XFREE86_HTML_MAN:L} == yes - @${MKHTMLINDEX} ${PREFIX}/lib/X11/doc/html -.endif -.endif -.endif -.endif -.endif - -# Package - -.if defined(DESTDIR) && ${PKGINSTALLVER} < 20040426 -check-makefile:: - @${ECHO_CMD} "${PKGNAME}: Makefile error: please upgrade pkg_install to use DESTDIR" - @${FALSE} -.endif - -.PHONY: do-package -.if !target(do-package) -do-package: ${TMPPLIST} - @if [ -d ${PACKAGES} ]; then \ - if [ ! -d ${PKGREPOSITORY} ]; then \ - if ! ${MKDIR} ${PKGREPOSITORY}; then \ - ${ECHO_MSG} ">> Can't create directory ${PKGREPOSITORY}."; \ - exit 1; \ - fi; \ - fi; \ - fi - @__softMAKEFLAGS='${__softMAKEFLAGS:S/'/'\''/g}'; \ - _LATE_PKG_ARGS=""; \ - if [ -f ${PKGINSTALL} ]; then \ - _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -i ${PKGINSTALL}"; \ - fi; \ - if [ -f ${PKGDEINSTALL} ]; then \ - _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -k ${PKGDEINSTALL}"; \ - fi; \ - if [ -f ${PKGREQ} ]; then \ - _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -r ${PKGREQ}"; \ - fi; \ - if [ -f ${PKGMESSAGE} ]; then \ - _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -D ${PKGMESSAGE}"; \ - fi; \ - if ${PKG_CMD} ${PKG_ARGS} ${PKGFILE}; then \ - if [ -d ${PACKAGES} ]; then \ - cd ${.CURDIR} && eval ${MAKE} ${_ONG_MAKEFLAGS} $${__softMAKEFLAGS} package-links; \ - fi; \ - else \ - cd ${.CURDIR} && eval ${MAKE} ${_ONG_MAKEFLAGS} $${__softMAKEFLAGS} delete-package; \ - exit 1; \ - fi -.endif - -# Some support rules for do-package - -.PHONY: package-links -.if !target(package-links) -package-links: 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} -sf `${ECHO_CMD} $$cat | ${SED} -e 'sa[^/]*a..ag'`/${PKGREPOSITORYSUBDIR}/${PKGNAME}${PKG_SUFX} ${PACKAGES}/$$cat; \ - done -.if !defined(NO_LATEST_LINK) - @if [ ! -d ${PKGLATESTREPOSITORY} ]; then \ - if ! ${MKDIR} ${PKGLATESTREPOSITORY}; then \ - ${ECHO_MSG} ">> Can't create directory ${PKGLATESTREPOSITORY}."; \ - exit 1; \ - fi; \ - fi - @${LN} -s ../${PKGREPOSITORYSUBDIR}/${PKGNAME}${PKG_SUFX} ${PKGLATESTFILE} -.endif -.endif - -.PHONY: delete-package-links -.if !target(delete-package-links) -delete-package-links: - @for cat in ${CATEGORIES}; do \ - ${RM} -f ${PACKAGES}/$$cat/${PKGNAME}${PKG_SUFX}; \ - done -.if !defined(NO_LATEST_LINK) - @${RM} -f ${PKGLATESTFILE} -.endif -.endif - -.PHONY: delete-package -.if !target(delete-package) -delete-package: delete-package-links - @${RM} -f ${PKGFILE} -.endif - -.PHONY: delete-package-links-list -.if !target(delete-package-links-list) -delete-package-links-list: - @for cat in ${CATEGORIES}; do \ - ${ECHO_CMD} ${RM} -f ${PACKAGES}/$$cat/${PKGNAME}${PKG_SUFX}; \ - done -.if !defined(NO_LATEST_LINK) - @${ECHO_CMD} ${RM} -f ${PKGLATESTFILE} -.endif -.endif - -.PHONY: delete-package-list -.if !target(delete-package-list) -delete-package-list: delete-package-links-list - @${ECHO_CMD} "[ -f ${PKGFILE} ] && (${ECHO_CMD} deleting ${PKGFILE}; ${RM} -f ${PKGFILE})" -.endif - -# Utility targets follow - -.PHONY: check-already-installed -.if !target(check-already-installed) -check-already-installed: -.if !defined(NO_PKG_REGISTER) && !defined(FORCE_PKG_REGISTER) - @${ECHO_MSG} "===> Checking if ${PKGORIGIN} already installed" - @${MKDIR} ${_PKG_DBDIR} - @already_installed=`${SETENV} PKG_DBDIR=${_PKG_DBDIR} ${PKG_INFO} -q -O ${PKGORIGIN}`; \ - if [ -n "$${already_installed}" ]; then \ - for p in $${already_installed}; do \ - prfx=`${SETENV} PKG_DBDIR=${_PKG_DBDIR} ${PKG_INFO} -q -p $${p} 2> /dev/null | ${SED} -ne '1s|^@cwd ||p'`; \ - if [ "x${PREFIX}" = "x$${prfx}" ]; then \ - found_package=$${p}; \ - break; \ - fi; \ - done; \ - fi; \ - if [ -n "$${found_package}" ]; then \ - if [ "${PKGNAME}" = "$${found_package}" ]; then \ - ${ECHO_CMD} "===> ${PKGNAME} is already installed"; \ - else \ - ${ECHO_CMD} "===> An older version of ${PKGORIGIN} is already installed ($${found_package})"; \ - fi; \ - ${ECHO_CMD} " You may wish to \`\`make deinstall'' and install this port again"; \ - ${ECHO_CMD} " by \`\`make reinstall'' to upgrade it properly."; \ - ${ECHO_CMD} " If you really wish to overwrite the old port of ${PKGORIGIN}"; \ - ${ECHO_CMD} " without deleting it first, set the variable \"FORCE_PKG_REGISTER\""; \ - ${ECHO_CMD} " in your environment or the \"make install\" command line."; \ - exit 1; \ - fi -.else - @${DO_NADA} -.endif -.endif - -.PHONY: check-umask -.if !target(check-umask) -check-umask: - @if [ `${SH} -c umask` != 0022 ]; then \ - ${ECHO_MSG} "===> Warning: your umask is \"`${SH} -c umask`"\".; \ - ${ECHO_MSG} " If this is not desired, set it to an appropriate value"; \ - ${ECHO_MSG} " and install this port again by \`\`make reinstall''."; \ - fi -.endif - -.PHONY: install-mtree -.if !target(install-mtree) -install-mtree: - @${MKDIR} ${DESTDIR}${PREFIX} - @if [ `${ID} -u` != 0 ]; then \ - if [ -w ${DESTDIR}${PREFIX}/ ]; then \ - ${ECHO_MSG} "Warning: not superuser, you may get some errors during installation."; \ - else \ - ${ECHO_MSG} "Error: ${DESTDIR}${PREFIX}/ not writable."; \ - ${FALSE}; \ - fi; \ - fi -.if !defined(NO_MTREE) - @if [ `${ID} -u` = 0 ]; then \ - if [ ! -f ${MTREE_FILE} ]; then \ - ${ECHO_CMD} "Error: mtree file \"${MTREE_FILE}\" is missing."; \ - ${ECHO_CMD} "Copy it from a suitable location (e.g., /usr/src/etc/mtree) and try again."; \ - exit 1; \ - else \ - ${MTREE_CMD} ${MTREE_ARGS} ${DESTDIR}${PREFIX}/ >/dev/null; \ - if [ ${MTREE_FILE} = "/etc/mtree/BSD.local.dist" ]; then \ - cd ${DESTDIR}${PREFIX}/share/nls; \ - ${LN} -shf C POSIX; \ - ${LN} -shf C en_US.US-ASCII; \ - fi; \ - fi; \ - else \ - ${ECHO_MSG} "Warning: not superuser, can't run mtree."; \ - ${ECHO_MSG} "You may want to become root and try again to ensure correct permissions."; \ - fi -.endif -.endif - -.PHONY: run-ldconfig -.if !target(run-ldconfig) -run-ldconfig: -.if defined(INSTALLS_SHLIB) -.if !defined(INSTALL_AS_USER) - @${ECHO_MSG} "===> Running ldconfig" - ${LDCONFIG} -m ${LDCONFIG_RUNLIST} -.else - @${ECHO_MSG} "===> Running ldconfig (errors are ignored)" - -${LDCONFIG} -m ${LDCONFIG_RUNLIST} -.endif -.else - @${DO_NADA} -.endif -.endif - -.PHONY: security-check -.if !target(security-check) -security-check: -# Scan PLIST for: -# 1. setugid files -# 2. accept()/recvfrom() which indicates network listening capability -# 3. insecure functions (gets/mktemp/tempnam/[XXX]) -# 4. startup scripts, in conjunction with 2. -# 5. world-writable files/dirs -# - -@${RM} -f ${WRKDIR}/.PLIST.setuid ${WRKDIR}/.PLIST.writable ${WRKDIR}/.PLIST.objdump; \ - ${AWK} -v prefix='${PREFIX}' ' \ - match($$0, /^@cwd /) { prefix = substr($$0, RSTART + RLENGTH); next; } \ - /^@/ { next; } \ - /^\// { print; next; } \ - { print prefix "/" $$0; } \ - ' ${TMPPLIST} > ${WRKDIR}/.PLIST.flattened; \ - ${TR} '\n' '\0' < ${WRKDIR}/.PLIST.flattened \ - | ${XARGS} -0 -J % ${FIND} % -prune ! -type l -type f \( -perm -4000 -o -perm -2000 \) \( -perm -0010 -o -perm -0001 \) 2> /dev/null > ${WRKDIR}/.PLIST.setuid; \ - ${TR} '\n' '\0' < ${WRKDIR}/.PLIST.flattened \ - | ${XARGS} -0 -J % ${FIND} % -prune -perm -0002 \! -type l 2> /dev/null > ${WRKDIR}/.PLIST.writable; \ - ${TR} '\n' '\0' < ${WRKDIR}/.PLIST.flattened \ - | ${XARGS} -0 -J % ${FIND} % -prune ! -type l -type f -print0 2> /dev/null \ - | ${XARGS} -0 -n 1 ${OBJDUMP} -R 2> /dev/null > ${WRKDIR}/.PLIST.objdump; \ - if \ - ! ${AWK} -v audit="$${PORTS_AUDIT}" -f ${PORTSDIR}/Tools/scripts/security-check.awk \ - ${WRKDIR}/.PLIST.flattened ${WRKDIR}/.PLIST.objdump ${WRKDIR}/.PLIST.setuid ${WRKDIR}/.PLIST.writable; \ - then \ - www_site=$$(cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} www-site); \ - if [ ! -z "$${www_site}" ]; then \ - ${ECHO_MSG}; \ - ${ECHO_MSG} " For more information, and contact details about the security"; \ - ${ECHO_MSG} " status of this software, see the following webpage: "; \ - ${ECHO_MSG} "$${www_site}"; \ - fi; \ - fi -.endif - -################################################################ -# 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. -################################################################ - -# Please note that the order of the following targets is important, and -# should not be modified. - -_BOOTSTRAP_SEQ= bootstrap-depends -_SANITY_DEP= bootstrap -_SANITY_SEQ= pre-everything check-makefile check-categories \ - check-makevars check-depends check-deprecated \ - check-vulnerable buildanyway-message options-message -_FETCH_DEP= check-sanity -_FETCH_SEQ= fetch-depends pre-fetch pre-fetch-script \ - do-fetch post-fetch post-fetch-script -_EXTRACT_DEP= fetch -_EXTRACT_SEQ= extract-message extract-depends pre-extract \ - pre-extract-script do-extract \ - post-extract post-extract-script -_PATCH_DEP= extract -_PATCH_SEQ= patch-message patch-depends pre-patch pre-patch-script \ - do-patch post-patch post-patch-script -_CONFIGURE_DEP= patch -_CONFIGURE_SEQ= build-depends lib-depends misc-depends configure-message \ - pre-configure pre-configure-script patch-autotools \ - run-autotools do-configure post-configure post-configure-script -_BUILD_DEP= configure -_BUILD_SEQ= build-message pre-build pre-build-script do-build \ - post-build post-build-script -_INSTALL_DEP= build -_INSTALL_SEQ= install-message check-conflicts \ - run-depends lib-depends pre-install pre-install-script \ - generate-plist check-already-installed -_INSTALL_SUSEQ= check-umask install-mtree pre-su-install \ - pre-su-install-script do-install post-install \ - post-install-script add-plist-info add-plist-docs \ - compress-man run-ldconfig fake-pkg security-check -_PACKAGE_DEP= install -_PACKAGE_SEQ= package-message pre-package pre-package-script \ - do-package post-package post-package-script - -.PHONY: bootstrap -.if !target(bootstrap) -bootstrap: ${_BOOTSTRAP_SEQ} -.endif - -.PHONY: check-sanity -.if !target(check-sanity) && defined(_ONG_REEXEC) -check-sanity: - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET} -.elif !target(check-sanity) -check-sanity: ${_SANITY_DEP} ${_SANITY_SEQ} -.endif - -# XXX MCL might need to move in loop below? -.PHONY: fetch -.if !target(fetch) && defined(_ONG_REEXEC) -fetch: - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET} -.elif !target(${target}) -fetch: ${_FETCH_DEP} ${_FETCH_SEQ} -.endif - -# Main logic. The loop generates 6 main targets and using cookies -# ensures that those already completed are skipped. - -.for target in extract patch configure build install package - -.PHONY: ${target} -.if !target(${target}) && defined(_ONG_REEXEC) -${target}: - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET} -.elif !target(${target}) && defined(_OPTIONS_OK) -${target}: ${${target:U}_COOKIE} -.elif !target(${target}) -${target}: config - @cd ${.CURDIR} && ${MAKE} CONFIG_DONE=1 ${__softMAKEFLAGS} ${${target:U}_COOKIE} -.endif - -.if !exists(${${target:U}_COOKIE}) - -.if ${UID} != 0 && defined(_${target:U}_SUSEQ) && !defined(INSTALL_AS_USER) -.if defined(USE_SUBMAKE) || defined(_ONG_REEXEC) -${${target:U}_COOKIE}: ${_${target:U}_DEP} - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${_${target:U}_SEQ} -.else -${${target:U}_COOKIE}: ${_${target:U}_DEP} ${_${target:U}_SEQ} -.endif - @${ECHO_MSG} "===> Switching to root credentials for '${target}' target" - @cd ${.CURDIR} && \ - ${SU_CMD} "${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${_${target:U}_SUSEQ}" - @${ECHO_MSG} "===> Returning to user credentials" - @${TOUCH} ${TOUCH_FLAGS} ${.TARGET} -.elif defined(USE_SUBMAKE) || defined(_ONG_REEXEC) -${${target:U}_COOKIE}: ${_${target:U}_DEP} - @cd ${.CURDIR} && \ - ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${_${target:U}_SEQ} ${_${target:U}_SUSEQ} - @${TOUCH} ${TOUCH_FLAGS} ${.TARGET} -.else -${${target:U}_COOKIE}: ${_${target:U}_DEP} ${_${target:U}_SEQ} ${_${target:U}_SUSEQ} - @${TOUCH} ${TOUCH_FLAGS} ${.TARGET} -.endif - -.else -${${target:U}_COOKIE}:: - @if [ -e ${.TARGET} ]; then \ - ${DO_NADA}; \ - else \ - cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET}; \ - fi -.endif - -.endfor - -# Enforce order for -jN builds - -.ORDER: ${_BOOTSTRAP_SEQ} -.ORDER: ${_SANITY_DEP} ${_SANITY_SEQ} -.ORDER: ${_FETCH_DEP} ${_FETCH_SEQ} -.ORDER: ${_EXTRACT_DEP} ${_EXTRACT_SEQ} -.ORDER: ${_PATCH_DEP} ${_PATCH_SEQ} -.ORDER: ${_CONFIGURE_DEP} ${_CONFIGURE_SEQ} -.ORDER: ${_BUILD_DEP} ${_BUILD_SEQ} -.ORDER: ${_INSTALL_DEP} ${_INSTALL_SEQ} -.ORDER: ${_PACKAGE_DEP} ${_PACKAGE_SEQ} - -.PHONY: extract-message patch-message configure-message build-message install-message package-message -extract-message: - @${ECHO_MSG} "===> Extracting for ${PKGNAME}" -patch-message: - @${ECHO_MSG} "===> Patching for ${PKGNAME}" -configure-message: - @${ECHO_MSG} "===> Configuring for ${PKGNAME}" -build-message: - @${ECHO_MSG} "===> Building for ${PKGNAME}" -install-message: - @${ECHO_MSG} "===> Installing for ${PKGNAME}" -package-message: - @${ECHO_MSG} "===> Building package for ${PKGNAME}" - -# Empty pre-* and post-* targets - -.for stage in pre post -.for name in fetch extract patch configure build install package - -.PHONY: ${stage}-${name} ${stage}-${name}-script - -.if !target(${stage}-${name}) -${stage}-${name}: - @${DO_NADA} -.endif - -.if !target(${stage}-${name}-script) -${stage}-${name}-script: - @if [ -f ${SCRIPTDIR}/${.TARGET:S/-script$//} ]; then \ - cd ${.CURDIR} && ${SETENV} ${SCRIPTS_ENV} ${SH} \ - ${SCRIPTDIR}/${.TARGET:S/-script$//}; \ - fi -.endif - -.endfor -.endfor - -# Special cases for su -.PHONY: pre-su-install pre-su-install-script - -.if !target(pre-su-install) -pre-su-install: - @${DO_NADA} -.endif - -.if !target(pre-su-install-script) -pre-su-install-script: - @${DO_NADA} -.endif - - -.PHONY: pretty-print-www-site -.if !target(pretty-print-www-site) -pretty-print-www-site: - @www_site=$$(cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} www-site); \ - if [ -n "$${www_site}" ]; then \ - ${ECHO_CMD} -n " and/or visit the "; \ - ${ECHO_CMD} -n "<a href=\"$${www_site}\">web site</a>"; \ - ${ECHO_CMD} " for futher informations"; \ - fi -.endif - -################################################################ -# Some more targets supplied for users' convenience -################################################################ - -# Checkpatch -# -# Special target to verify patches - -.PHONY: checkpatch -.if !target(checkpatch) -checkpatch: - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} PATCH_CHECK_ONLY=yes ${_PATCH_DEP} ${_PATCH_SEQ} -.endif - -# Reinstall -# -# Special target to re-run install - -.PHONY: reinstall -.if !target(reinstall) -reinstall: - @${RM} -f ${INSTALL_COOKIE} ${PACKAGE_COOKIE} - @cd ${.CURDIR} && DEPENDS_TARGET="${DEPENDS_TARGET}" DESTDIR=${DESTDIR} ${MAKE} ${_ONG_MAKEFLAGS} install -.endif - -# Deinstall -# -# Special target to remove installation - -.PHONY: deinstall -.if !target(deinstall) -deinstall: - @if [ -n "${DESTDIR}" ]; then \ - ${ECHO_MSG} "===> Can't deinstall from DESTDIR: ${DESTDIR}"; \ - ${FALSE}; \ - fi -.if ${UID} != 0 && !defined(INSTALL_AS_USER) - @${ECHO_MSG} "===> Switching to root credentials for '${.TARGET}' target" - @cd ${.CURDIR} && \ - ${SU_CMD} "${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET}" - @${ECHO_MSG} "===> Returning to user credentials" -.else - @${ECHO_MSG} "===> Deinstalling for ${PKGORIGIN}" - @found_names=`${SETENV} PKG_DBDIR=${_PKG_DBDIR} ${PKG_INFO} -q -O ${PKGORIGIN}`; \ - for p in $${found_names}; do \ - check_name=`${ECHO_CMD} $${p} | ${SED} -e 's/-[^-]*$$//'`; \ - if [ "$${check_name}" = "${PKGBASE}" ]; then \ - prfx=`${SETENV} PKG_DBDIR=${_PKG_DBDIR} ${PKG_INFO} -q -p $${p} 2> /dev/null | ${SED} -ne '1s|^@cwd ||p'`; \ - if [ "x${PREFIX}" = "x$${prfx}" ]; then \ - ${ECHO_MSG} "===> Deinstalling $${p}"; \ - ${SETENV} PKG_DBDIR=${_PKG_DBDIR} ${PKG_DELETE} -f $${p}; \ - else \ - ${ECHO_MSG} "===> $${p} has a different PREFIX: $${prfx}, skipping"; \ - fi; \ - fi; \ - done; \ - if [ -z "$${found_names}" ]; then \ - ${ECHO_MSG} "===> ${PKGBASE} not installed, skipping"; \ - fi - @${RM} -f ${INSTALL_COOKIE} ${PACKAGE_COOKIE} -.endif -.endif - -# Deinstall-all -# -# Special target to remove installation of all ports of the same origin - -.PHONY: deinstall-all -.if !target(deinstall-all) -deinstall-all: - @if [ -n "${DESTDIR}" ]; then \ - ${ECHO_MSG} "===> Can't deinstall from DESTDIR: ${DESTDIR}"; \ - ${FALSE}; \ - fi -.if ${UID} != 0 && !defined(INSTALL_AS_USER) - @${ECHO_MSG} "===> Switching to root credentials for '${.TARGET}' target" - @cd ${.CURDIR} && \ - ${SU_CMD} "${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET}" - @${ECHO_MSG} "===> Returning to user credentials" -.else - @${ECHO_MSG} "===> Deinstalling for ${PKGORIGIN}" - @deinstall_names=`${SETENV} PKG_DBDIR=${_PKG_DBDIR} ${PKG_INFO} -q -O ${PKGORIGIN}`; \ - if [ -n "$${deinstall_names}" ]; then \ - for d in $${deinstall_names}; do \ - ${ECHO_MSG} "===> Deinstalling $${d}"; \ - ${SETENV} PKG_DBDIR=${_PKG_DBDIR} ${PKG_DELETE} -f $${d}; \ - done; \ - else \ - ${ECHO_MSG} "===> ${PKGORIGIN} not installed, skipping"; \ - fi - @${RM} -f ${INSTALL_COOKIE} ${PACKAGE_COOKIE} -.endif -.endif - -# Cleaning up - -.PHONY: do-clean -.if !target(do-clean) -do-clean: - @if [ -d ${WRKDIR} ]; then \ - if [ -w ${WRKDIR} ]; then \ - ${RM} -rf ${WRKDIR}; \ - else \ - ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \ - fi; \ - fi -.endif - -.PHONY: clean -.if !target(clean) -clean: -.if !defined(NOCLEANDEPENDS) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} clean-depends -.endif - @${ECHO_MSG} "===> Cleaning for ${PKGNAME}" -.if target(pre-clean) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} pre-clean -.endif - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} do-clean -.if target(post-clean) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} post-clean -.endif -.endif - -.PHONY: pre-distclean -.if !target(pre-distclean) -pre-distclean: - @${DO_NADA} -.endif - -.PHONY: distclean -.if !target(distclean) -distclean: pre-distclean clean - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} delete-distfiles RESTRICTED_FILES='$${_DISTFILES} $${_PATCHFILES}' -.endif - -.PHONY: delete-distfiles -.if !target(delete-distfiles) -delete-distfiles: - @${ECHO_MSG} "===> Deleting distfiles for ${PKGNAME}" -.if defined(RESTRICTED_FILES) - @if [ -d "${_DISTDIR}" ]; then ( \ - cd "${_DISTDIR}"; \ - RESTRICTED_FILES="${RESTRICTED_FILES}"; \ - for file in $${RESTRICTED_FILES}; do \ - ${RM} -f "$${file}"; \ - dir="$${file%/*}"; \ - if [ "$${dir}" != "$${file}" ]; then \ - ${RMDIR} -p "$${dir}" >/dev/null 2>&1 || ${TRUE}; \ - fi; \ - done \ - ); fi -.endif -.if defined(DIST_SUBDIR) - @${RMDIR} "${_DISTDIR}" >/dev/null 2>&1 || ${TRUE} -.endif -.endif - -.PHONY: delete-distfiles-list -.if !target(delete-distfiles-list) -delete-distfiles-list: - @${ECHO_CMD} "# ${PKGNAME}" - @if [ "X${RESTRICTED_FILES}" != "X" ]; then \ - for file in ${RESTRICTED_FILES}; do \ - ${ECHO_CMD} "[ -f ${_DISTDIR}/$$file ] && (${ECHO_CMD} deleting ${_DISTDIR}/$$file; ${RM} -f ${_DISTDIR}/$$file)"; \ - dir=$${file%/*}; \ - if [ "$${dir}" != "$${file}" ]; then \ - ${ECHO_CMD} "(cd ${_DISTDIR} && ${RMDIR} -p $${dir} 2>/dev/null)"; \ - fi; \ - done; \ - fi -.if defined(DIST_SUBDIR) - @${ECHO_CMD} "${RMDIR} ${_DISTDIR} 2>/dev/null || ${TRUE}" -.endif -.endif - -# Generates patches. - -.PHONY: update-patches -.if !target(update-patches) -update-patches: - @toedit=`PATCH_WRKSRC=${PATCH_WRKSRC} \ - PATCHDIR=${PATCHDIR} \ - PATCH_LIST=${PATCHDIR}/patch-* \ - DIFF_ARGS=${DIFF_ARGS} \ - DISTORIG=${DISTORIG} \ - ${SH} ${PORTSDIR}/Tools/scripts/update-patches`; \ - case $$toedit in "");; \ - *) ${ECHO_CMD} -n 'edit patches: '; read i; \ - cd ${PATCHDIR} && $${VISUAL:-$${EDIT:-/usr/bin/vi}} $$toedit;; esac -.endif - -################################################################ -# The special package-building targets -# You probably won't need to touch these -################################################################ - -# Nobody should want to override this unless PKGNAME is simply bogus. - -.PHONY: package-name -.if !target(package-name) -package-name: - @${ECHO_CMD} ${PKGNAME} -.endif - -# Build a package but don't check the package cookie - -.PHONY: repackage -.if !target(repackage) -.PHONY: repackage pre-repackage -.ORDER: pre-repackage package -repackage: pre-repackage package - -pre-repackage: - @${RM} -f ${PACKAGE_COOKIE} -.endif - -# Build a package but don't check the cookie for installation, also don't -# install package cookie - -.PHONY: package-noinstall -.if !target(package-noinstall) -package-noinstall: - @${MKDIR} ${WRKDIR} - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} pre-package \ - pre-package-script do-package post-package post-package-script - @${RM} -f ${TMPPLIST} - -@${RMDIR} ${WRKDIR} -.endif - -################################################################ -# Dependency checking -################################################################ - -.PHONY: depends -.if !target(depends) -depends: extract-depends patch-depends lib-depends misc-depends fetch-depends build-depends run-depends - -.if defined(ALWAYS_BUILD_DEPENDS) -_DEPEND_ALWAYS= 1 -.else -_DEPEND_ALWAYS= 0 -.endif - -.if defined(INSTALLS_DEPENDS) && defined(INSTALLS_BOOTSTRAP) -bootstrap-depends: - @${DO_NADA} -.endif - -.for deptype in BOOTSTRAP FETCH EXTRACT PATCH BUILD RUN -.PHONY: ${deptype:L}-depends -.if !target(${deptype:L}-depends) -${deptype:L}-depends: -.if defined(${deptype}_DEPENDS) -.if !defined(NO_DEPENDS) - @if [ -n "INSTALLS_BOOTSTRAP" -o "${deptype:L}" = "bootstrap" ]; then \ - submake_args="-DINSTALLS_BOOTSTRAP -DINSTALLS_DEPENDS"; \ - else \ - submake_args="-DINSTALLS_DEPENDS"; \ - fi; \ - for i in ${${deptype}_DEPENDS}; do \ - prog=`${ECHO_CMD} $$i | ${SED} -e 's/:.*//'`; \ - dir=`${ECHO_CMD} $$i | ${SED} -e 's/[^:]*://'`; \ - if ${EXPR} "$$dir" : '.*:' > /dev/null; then \ - target=`${ECHO_CMD} $$dir | ${SED} -e 's/.*://'`; \ - dir=`${ECHO_CMD} $$dir | ${SED} -e 's/:.*//'`; \ - else \ - target="${DEPENDS_TARGET}"; \ - depends_args="${DEPENDS_ARGS}"; \ - fi; \ - if ${EXPR} "$$prog" : \\/ >/dev/null; then \ - if [ -e "$$prog" ]; then \ - if [ "$$prog" = "${NONEXISTENT}" ]; then \ - ${ECHO_MSG} "Error: ${NONEXISTENT} exists. Please remove it, and restart the build."; \ - ${FALSE}; \ - else \ - ${ECHO_MSG} "===> ${PKGNAME} depends on file: $$prog - found"; \ - if [ ${_DEPEND_ALWAYS} = 1 ]; then \ - ${ECHO_MSG} " (but building it anyway)"; \ - notfound=1; \ - else \ - notfound=0; \ - fi; \ - fi; \ - else \ - ${ECHO_MSG} "===> ${PKGNAME} depends on file: $$prog - not found"; \ - notfound=1; \ - fi; \ - else \ - if ${WHICH} "$$prog" > /dev/null 2>&1 ; then \ - ${ECHO_MSG} "===> ${PKGNAME} depends on executable: $$prog - found"; \ - if [ ${_DEPEND_ALWAYS} = 1 ]; then \ - ${ECHO_MSG} " (but building it anyway)"; \ - notfound=1; \ - else \ - notfound=0; \ - fi; \ - else \ - ${ECHO_MSG} "===> ${PKGNAME} depends on executable: $$prog - not found"; \ - notfound=1; \ - fi; \ - fi; \ - if [ $$notfound != 0 ]; then \ - ${ECHO_MSG} "===> Verifying $$target for $$prog in $$dir"; \ - if [ ! -d "$$dir" ]; then \ - ${ECHO_MSG} " >> No directory for $$prog. Skipping.."; \ - else \ - if [ X${USE_PACKAGE_DEPENDS} != "X" ]; then \ - subpkgfile=`(cd $$dir; ${MAKE} $$depends_args -V PKGFILE)`; \ - if [ -r "$${subpkgfile}" -a "$$target" = "${DEPENDS_TARGET}" ]; then \ - ${ECHO_MSG} "===> Installing existing package $${subpkgfile}"; \ - ${PKG_ADD} $${subpkgfile}; \ - else \ - (cd $$dir; ${MAKE} $$submake_args $$target $$depends_args) ; \ - fi; \ - else \ - (cd $$dir; ${MAKE} $$submake_args $$target $$depends_args) ; \ - fi ; \ - ${ECHO_MSG} "===> Returning to build of ${PKGNAME}"; \ - fi; \ - fi; \ - done -.endif -.else - @${DO_NADA} -.endif -.endif -.endfor - -.PHONY: lib-depends -.if !target(lib-depends) -lib-depends: -.if defined(LIB_DEPENDS) && !defined(NO_DEPENDS) - @for i in ${LIB_DEPENDS}; do \ - lib=$${i%%:*}; \ - case $$lib in \ - *.*.*) pattern="`${ECHO_CMD} $$lib | ${SED} -e 's/\./\\\\./g'`" ;;\ - *.*) pattern="$${lib%%.*}\.$${lib#*.}" ;;\ - *) pattern="$$lib" ;;\ - esac; \ - dir=$${i#*:}; \ - target=$${i##*:}; \ - if ${TEST} $$dir = $$target; then \ - target="${DEPENDS_TARGET}"; \ - depends_args="${DEPENDS_ARGS}"; \ - else \ - dir=$${dir%%:*}; \ - fi; \ - ${ECHO_MSG} -n "===> ${PKGNAME} depends on shared library: $$lib"; \ - if ${LDCONFIG} -r | ${GREP} -vwF -e "${PKGCOMPATDIR}" | ${GREP} -qwE -e "-l$$pattern"; then \ - ${ECHO_MSG} " - found"; \ - if [ ${_DEPEND_ALWAYS} = 1 ]; then \ - ${ECHO_MSG} " (but building it anyway)"; \ - notfound=1; \ - else \ - notfound=0; \ - fi; \ - else \ - ${ECHO_MSG} " - not found"; \ - notfound=1; \ - fi; \ - if [ $$notfound != 0 ]; then \ - ${ECHO_MSG} "===> Verifying $$target for $$lib in $$dir"; \ - if [ ! -d "$$dir" ]; then \ - ${ECHO_MSG} " >> No directory for $$lib. Skipping.."; \ - else \ - if [ X${USE_PACKAGE_DEPENDS} != "X" ]; then \ - subpkgfile=`(cd $$dir; ${MAKE} $$depends_args -V PKGFILE)`; \ - if [ -r "$${subpkgfile}" -a "$$target" = "${DEPENDS_TARGET}" ]; then \ - ${ECHO_MSG} "===> Installing existing package $${subpkgfile}"; \ - ${PKG_ADD} $${subpkgfile}; \ - else \ - (cd $$dir; ${MAKE} -DINSTALLS_DEPENDS $$target $$depends_args) ; \ - fi; \ - else \ - (cd $$dir; ${MAKE} -DINSTALLS_DEPENDS $$target $$depends_args) ; \ - fi ; \ - ${ECHO_MSG} "===> Returning to build of ${PKGNAME}"; \ - if ! ${LDCONFIG} -r | ${GREP} -vwF -e "${PKGCOMPATDIR}" | ${GREP} -qwE -e "-l$$pattern"; then \ - ${ECHO_MSG} "Error: shared library \"$$lib\" does not exist"; \ - ${FALSE}; \ - fi; \ - fi; \ - fi; \ - done -.endif -.endif - -.PHONY: misc-depends -.if !target(misc-depends) -misc-depends: -.if defined(DEPENDS) -.if !defined(NO_DEPENDS) - @for dir in ${DEPENDS}; do \ - if ${EXPR} "$$dir" : '.*:' > /dev/null; then \ - target=`${ECHO_CMD} $$dir | ${SED} -e 's/.*://'`; \ - dir=`${ECHO_CMD} $$dir | ${SED} -e 's/:.*//'`; \ - else \ - target="${DEPENDS_TARGET}"; \ - depends_args="${DEPENDS_ARGS}"; \ - fi; \ - ${ECHO_MSG} "===> ${PKGNAME} depends on: $$dir"; \ - ${ECHO_MSG} "===> Verifying $$target for $$dir"; \ - if [ ! -d $$dir ]; then \ - ${ECHO_MSG} " >> No directory for $$dir. Skipping.."; \ - else \ - (cd $$dir; ${MAKE} $$target $$depends_args) ; \ - fi \ - done - @${ECHO_MSG} "===> Returning to build of ${PKGNAME}" -.endif -.else - @${DO_NADA} -.endif -.endif - -.endif - -# Dependency lists: both build and runtime, recursive. Print out directory names. - -.PHONY: all-depends-list -all-depends-list: -.if defined(_ONG_REEXEC) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET} -.elif defined(EXTRACT_DEPENDS) || defined(PATCH_DEPENDS) || defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || defined(LIB_DEPENDS) || defined(RUN_DEPENDS) || defined(DEPENDS) - @${ALL-DEPENDS-LIST} -.else - @${DO_NADA} -.endif - -.if defined(_ONG_REEXEC) -ALL-DEPENDS-LIST= \ - ${ECHO_MSG} "${PKGNAME}: configuration error." >&2; ${FALSE} -.else -ALL-DEPENDS-LIST= \ - checked="${PARENT_CHECKED}"; \ - for dir in $$(${ECHO_CMD} "${EXTRACT_DEPENDS} ${PATCH_DEPENDS} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS} ${RUN_DEPENDS}" | ${SED} -e 'y/ /\n/' | ${CUT} -f 2 -d ':') $$(${ECHO_CMD} ${DEPENDS} | ${SED} -e 'y/ /\n/' | ${CUT} -f 1 -d ':'); do \ - if [ -d $$dir ]; then \ - if (${ECHO_CMD} $$checked | ${GREP} -qwv "$$dir"); then \ - child=$$(cd $$dir; ${MAKE} PARENT_CHECKED="$$checked" all-depends-list); \ - for d in $$child; do ${ECHO_CMD} $$d; done; \ - ${ECHO_CMD} $$dir; \ - checked="$$dir $$child $$checked"; \ - fi; \ - else \ - ${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \ - fi; \ - done | ${SORT} -u -.endif - -.PHONY: clean-depends -.if !target(clean-depends) -clean-depends: -.if defined(_ONG_REEXEC) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET} -.else - @for dir in $$(${ALL-DEPENDS-LIST}); do \ - (cd $$dir; ${MAKE} NOCLEANDEPENDS=yes clean); \ - done -.endif -.endif - -.PHONY: deinstall-depends -.if !target(deinstall-depends) -deinstall-depends: -.if defined(_ONG_REEXEC) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET} -.else - @for dir in $$(${ALL-DEPENDS-LIST}); do \ - (cd $$dir; ${MAKE} deinstall); \ - done -.endif -.endif - -.PHONY: fetch-recursive -.if !target(fetch-recursive) -fetch-recursive: -.if defined(_ONG_REEXEC) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET} -.else - @${ECHO_MSG} "===> Fetching all distfiles for ${PKGNAME} and dependencies" - @for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \ - (cd $$dir; ${MAKE} fetch); \ - done -.endif -.endif - -.PHONY: fetch-recursive-list -.if !target(fetch-recursive-list) -fetch-recursive-list: -.if defined(_ONG_REEXEC) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET} -.else - @for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \ - (cd $$dir; ${MAKE} fetch-list); \ - done -.endif -.endif - -.PHONY: fetch-required -.if !target(fetch-required) -fetch-required: fetch - @${ECHO_MSG} "===> Fetching all required distfiles for ${PKGNAME} and dependencies" -.for deptype in EXTRACT PATCH FETCH BUILD RUN -.if defined(${deptype}_DEPENDS) -.if !defined(NO_DEPENDS) - @for i in ${${deptype}_DEPENDS}; do \ - prog=`${ECHO_CMD} $$i | ${CUT} -f 1 -d ':'`; \ - dir=`${ECHO_CMD} $$i | ${CUT} -f 2-999 -d ':'`; \ - if ${EXPR} "$$dir" : '.*:' > /dev/null; then \ - dir=`${ECHO_CMD} $$dir | ${CUT} -f 1 -d ':'`; \ - if ${EXPR} "$$prog" : \\/ >/dev/null; then \ - if [ ! -e "$$prog" ]; then \ - (cd $$dir; ${MAKE} fetch); \ - fi; \ - fi; \ - else \ - (cd $$dir; \ - if ! ${PKG_INFO} -e `${MAKE} -V PKGNAME`; then \ - ${MAKE} fetch; \ - fi ); \ - fi; \ - done -.endif -.endif -.endfor -.endif - -.PHONY: fetch-required-list -.if !target(fetch-required-list) -fetch-required-list: fetch-list -.for deptype in EXTRACT PATCH FETCH BUILD RUN -.if defined(${deptype}_DEPENDS) -.if !defined(NO_DEPENDS) - @for i in ${${deptype}_DEPENDS}; do \ - prog=`${ECHO_CMD} $$i | ${CUT} -f 1 -d ':'`; \ - dir=`${ECHO_CMD} $$i | ${CUT} -f 2-999 -d ':'`; \ - if ${EXPR} "$$dir" : '.*:' > /dev/null; then \ - dir=`${ECHO_CMD} $$dir | ${CUT} -f 1 -d ':'`; \ - if ${EXPR} "$$prog" : \\/ >/dev/null; then \ - if [ ! -e "$$prog" ]; then \ - (cd $$dir; ${MAKE} fetch-list); \ - fi; \ - fi; \ - else \ - (cd $$dir; \ - if ! ${PKG_INFO} -e `${MAKE} -V PKGNAME`; then \ - ${MAKE} fetch-list; \ - fi ); \ - fi; \ - done -.endif -.endif -.endfor -.endif - -.PHONY: checksum-recursive -.if !target(checksum-recursive) -checksum-recursive: -.if defined(_ONG_REEXEC) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET} -.else - @${ECHO_MSG} "===> Fetching and checking checksums for ${PKGNAME} and dependencies" - @for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \ - (cd $$dir; ${MAKE} checksum); \ - done -.endif -.endif - -# Dependency lists: build and runtime. Print out directory names. - -.PHONY: build-depends-list -build-depends-list: -.if defined(EXTRACT_DEPENDS) || defined(PATCH_DEPENDS) || defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || defined(LIB_DEPENDS) || defined(DEPENDS) - @${BUILD-DEPENDS-LIST} -.endif - -BUILD-DEPENDS-LIST= \ - for dir in $$(${ECHO_CMD} "${EXTRACT_DEPENDS} ${PATCH_DEPENDS} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS}" | ${TR} '\040' '\012' | ${SED} -e 's/^[^:]*://' -e 's/:.*//' | ${SORT} -u) $$(${ECHO_CMD} ${DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/:.*//' | ${SORT} -u); do \ - if [ -d $$dir ]; then \ - ${ECHO_CMD} $$dir; \ - else \ - ${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \ - fi; \ - done | ${SORT} -u - -.PHONY: run-depends-list -run-depends-list: -.if defined(LIB_DEPENDS) || defined(RUN_DEPENDS) || defined(DEPENDS) - @${RUN-DEPENDS-LIST} -.endif - -RUN-DEPENDS-LIST= \ - for dir in $$(${ECHO_CMD} "${LIB_DEPENDS} ${RUN_DEPENDS}" | ${SED} -e 'y/ /\n/' | ${CUT} -f 2 -d ':' | ${SORT} -u) $$(${ECHO_CMD} ${DEPENDS} | ${SED} -e 'y/ /\n/' | ${CUT} -f 1 -d ':' | ${SORT} -u); do \ - if [ -d $$dir ]; then \ - ${ECHO_CMD} $$dir; \ - else \ - ${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \ - fi; \ - done | ${SORT} -u - -# Package (recursive runtime) dependency list. Print out both directory names -# and package names. - -.PHONY: package-depends-list -package-depends-list: -.if defined(CHILD_DEPENDS) || defined(LIB_DEPENDS) || defined(RUN_DEPENDS) || defined(DEPENDS) - @${PACKAGE-DEPENDS-LIST} -.endif - -PACKAGE-DEPENDS-LIST?= \ - if [ "${CHILD_DEPENDS}" ]; then \ - installed=$$(${PKG_INFO} -qO ${PKGORIGIN} 2>/dev/null || \ - ${TRUE}); \ - if [ "$$installed" ]; then \ - break; \ - fi; \ - if [ -z "$$installed" ]; then \ - installed="${PKGNAME}"; \ - fi; \ - for pkgname in $$installed; do \ - ${ECHO_CMD} "$$pkgname ${.CURDIR} ${PKGORIGIN}"; \ - done; \ - fi; \ - checked="${PARENT_CHECKED}"; \ - for dir in $$(${ECHO_CMD} "${LIB_DEPENDS} ${RUN_DEPENDS}" | ${SED} -e 'y/ /\n/' | ${CUT} -f 2 -d ':') $$(${ECHO_CMD} ${DEPENDS} | ${SED} -e 'y/ /\n/' | ${CUT} -f 1 -d ':'); do \ - dir=$$(${REALPATH} $$dir); \ - if [ -d $$dir ]; then \ - if (${ECHO_CMD} $$checked | ${GREP} -qwv "$$dir"); then \ - childout=$$(cd $$dir; ${MAKE} CHILD_DEPENDS=yes PARENT_CHECKED="$$checked" package-depends-list); \ - set -- $$childout; \ - childdir=""; \ - while [ $$\# != 0 ]; do \ - childdir="$$childdir $$2"; \ - ${ECHO_CMD} "$$1 $$2 $$3"; \ - shift 3; \ - done; \ - checked="$$dir $$childdir $$checked"; \ - fi; \ - else \ - ${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \ - fi; \ - done - -# Print out package names. - -.PHONY: package-depends -package-depends: -.if ${OSVERSION} >= 460102 || exists(${LOCALBASE}/sbin/pkg_info) - @${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1":"$$3}' -.else - @${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1}' -.endif - -# Build packages for port and dependencies - -.PHONY: package-recursive -package-recursive: package -.if defined(_ONG_REEXEC) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.TARGET} -.else - @for dir in $$(${ALL-DEPENDS-LIST}); do \ - (cd $$dir; ${MAKE} package-noinstall); \ - done -.endif - -################################################################ -# 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| \ -# description-file|maintainer|categories|build deps|run deps|www site - -.PHONY: describe -.if !target(describe) -describe: -.if defined(_ONG_REEXEC) - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${.TARGET} -.else - @${ECHO_CMD} -n "${PKGNAME}|${.CURDIR}|${PREFIX}|" -.if defined(COMMENT) - @${ECHO_CMD} -n ${COMMENT:Q} -.else - @${ECHO_CMD} -n '** No Description' -.endif - @${PERL5} -e ' \ - if ( -f q{${DESCR}} ) { \ - print q{|${DESCR}}; \ - } else { \ - print q{|/dev/null}; \ - } \ - print q{|${MAINTAINER}|${CATEGORIES}|}; \ - @edirs = map((split /:/)[1], split(q{ }, q{${EXTRACT_DEPENDS}})); \ - @pdirs = map((split /:/)[1], split(q{ }, q{${PATCH_DEPENDS}})); \ - @fdirs = map((split /:/)[1], split(q{ }, q{${FETCH_DEPENDS}})); \ - @bdirs = map((split /:/)[1], split(q{ }, q{${BUILD_DEPENDS}})); \ - @rdirs = map((split /:/)[1], split(q{ }, q{${RUN_DEPENDS}})); \ - @ddirs = map((split /:/)[0], split(q{ }, q{${DEPENDS}})); \ - @ldirs = map((split /:/)[1], split(q{ }, q{${LIB_DEPENDS}})); \ - for my $$i (\@edirs, \@pdirs, \@fdirs, \@bdirs, \@rdirs, \@ddirs, \@ldirs) { \ - my @dirs = @$$i; \ - @$$i = (); \ - for (@dirs) { \ - if (-d $$_) { \ - push @$$i, $$_; \ - } else { \ - print STDERR qq{${PKGNAME}: \"$$_\" non-existent -- dependency list incomplete\n}; \ - exit(1); \ - } \ - } \ - } \ - for (@edirs, @ddirs) { \ - $$xe{$$_} = 1; \ - } \ - print join(q{ }, sort keys %xe), q{|}; \ - for (@pdirs, @ddirs) { \ - $$xp{$$_} = 1; \ - } \ - print join(q{ }, sort keys %xp), q{|}; \ - for (@fdirs, @ddirs) { \ - $$xf{$$_} = 1; \ - } \ - print join(q{ }, sort keys %xf), q{|}; \ - for (@bdirs, @ddirs, @ldirs) { \ - $$xb{$$_} = 1; \ - } \ - print join(q{ }, sort keys %xb), q{|}; \ - for (@rdirs, @ddirs, @ldirs) { \ - $$xr{$$_} = 1; \ - } \ - print join(q{ }, sort keys %xr), q{|}; \ - if (open(DESCR, q{${DESCR}})) { \ - while (<DESCR>) { \ - if (/^WWW:\s+(\S+)/) { \ - print $$1; \ - last; \ - } \ - } \ - } \ - print qq{\n};' -.endif -.endif - -.PHONY: www-site -.if !target(www-site) -www-site: -.if exists(${DESCR}) - @${GREP} '^WWW:[ ]' ${DESCR} | ${AWK} '{print $$2}' | ${HEAD} -1 -.else - @${ECHO_CMD} -.endif -.endif - -.PHONY: readmes -.if !target(readmes) -readmes: readme -.endif - -.PHONY: readme -.if !target(readme) -readme: - @${RM} -f ${.CURDIR}/README.html - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} ${.CURDIR}/README.html -.endif - -${.CURDIR}/README.html: - @${ECHO_MSG} "===> Creating README.html for ${PKGNAME}" - @__softMAKEFLAGS='${__softMAKEFLAGS:S/'/'\''/g}'; \ - ${SED} -e 's|%%PORT%%|'$$(${ECHO_CMD} ${.CURDIR} | \ - ${SED} -e 's|.*/\([^/]*/[^/]*\)$$|\1|')'|g' \ - -e 's|%%PKG%%|${PKGNAME}|g' \ - -e 's|%%COMMENT%%|'"$$(${ECHO_CMD} ${COMMENT:Q})"'|' \ - -e '/%%COMMENT%%/d' \ - -e 's|%%DESCR%%|'"$$(${ECHO_CMD} ${DESCR} | \ - ${SED} -e 's|${.CURDIR}/||')"'|' \ - -e 's|%%EMAIL%%|'"$$(${ECHO_CMD} "${MAINTAINER}" | \ - ${SED} -e 's/([^)]*)//;s/.*<//;s/>.*//')"'|g' \ - -e 's|%%MAINTAINER%%|${MAINTAINER}|g' \ - -e 's|%%WEBSITE%%|'"$$(cd ${.CURDIR} && eval ${MAKE} ${_ONG_MAKEFLAGS} \ - $${__softMAKEFLAGS} pretty-print-www-site)"'|' \ - -e 's|%%BUILD_DEPENDS%%|'"$$(cd ${.CURDIR} && eval ${MAKE} ${_ONG_MAKEFLAGS} \ - $${__softMAKEFLAGS} pretty-print-build-depends-list)"'|' \ - -e 's|%%RUN_DEPENDS%%|'"$$(cd ${.CURDIR} && eval ${MAKE} ${_ONG_MAKEFLAGS} \ - $${__softMAKEFLAGS} pretty-print-run-depends-list)"'|' \ - -e 's|%%TOP%%|'"$$(${ECHO_CMD} ${CATEGORIES} | \ - ${SED} -e 's| .*||' -e 's|[^/]*|..|g')"'/..|' \ - ${TEMPLATES}/README.port >> $@ - -# The following two targets require an up-to-date INDEX in ${PORTSDIR} - -.PHONY: pretty-print-build-depends-list -.if !target(pretty-print-build-depends-list) -pretty-print-build-depends-list: -.if defined(EXTRACT_DEPENDS) || defined(PATCH_DEPENDS) || \ - defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || \ - defined(LIB_DEPENDS) || defined(DEPENDS) - @${ECHO_CMD} -n 'This port requires package(s) "' - @${ECHO_CMD} -n `${GREP} '^${PKGNAME}|' ${PORTSDIR}/${INDEXFILE} | ${AWK} -F\| '{print $$8;}'` - @${ECHO_CMD} '" to build.' -.endif -.endif - -.PHONY: pretty-print-run-depends-list -.if !target(pretty-print-run-depends-list) -pretty-print-run-depends-list: -.if defined(RUN_DEPENDS) || defined(LIB_DEPENDS) || defined(DEPENDS) - @${ECHO_CMD} -n 'This port requires package(s) "' - @${ECHO_CMD} -n `${GREP} '^${PKGNAME}|' ${PORTSDIR}/${INDEXFILE} | ${AWK} -F\| '{print $$9;}'` - @${ECHO_CMD} '" to run.' -.endif -.endif - -# Generate packing list. Also tests to make sure all required package -# files exist. - -.PHONY: generate-plist -.if !target(generate-plist) -generate-plist: - @${ECHO_MSG} "===> Generating temporary packing list" - @${MKDIR} `${DIRNAME} ${TMPPLIST}` - @if [ ! -f ${DESCR} ]; then ${ECHO_CMD} "** Missing pkg-descr for ${PKGNAME}."; exit 1; fi - @>${TMPPLIST} - @for file in ${PLIST_FILES}; do \ - ${ECHO_CMD} $${file} | ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} >> ${TMPPLIST}; \ - done - @for man in ${__MANPAGES}; do \ - ${ECHO_CMD} $${man} >> ${TMPPLIST}; \ - done -.for _PREFIX in ${PREFIX} -.if ${_TMLINKS:M${_PREFIX}*}x != x - @for i in ${_TMLINKS:M${_PREFIX}*:S|^${_PREFIX}/||}; do \ - ${ECHO_CMD} "$$i" >> ${TMPPLIST}; \ - done -.endif -.if ${_TMLINKS:N${_PREFIX}*}x != x - @${ECHO_CMD} @cwd / >> ${TMPPLIST} - @for i in ${_TMLINKS:N${_PREFIX}*:S|^/||}; do \ - ${ECHO_CMD} "$$i" >> ${TMPPLIST}; \ - done - @${ECHO_CMD} '@cwd ${PREFIX}' >> ${TMPPLIST} -.endif - @for i in $$(${ECHO_CMD} ${__MANPAGES} ${_TMLINKS:M${_PREFIX}*:S|^${_PREFIX}/||} ' ' | ${SED} -E -e 's|man([1-9ln])/([^/ ]+) |cat\1/\2 |g'); do \ - ${ECHO_CMD} "@unexec rm -f %D/$${i%.gz} %D/$${i%.gz}.gz" >> ${TMPPLIST}; \ - done -.if ${XFREE86_HTML_MAN:L} == "yes" -.for mansect in 1 2 3 4 5 6 7 8 9 L N -.for man in ${MAN${mansect}} - @${ECHO_CMD} lib/X11/doc/html/${man}.html >> ${TMPPLIST} -.endfor -.endfor - @${ECHO_CMD} "@unexec %D/bin/mkhtmlindex %D/lib/X11/doc/html" >> ${TMPPLIST} - @${ECHO_CMD} "@exec %D/bin/mkhtmlindex %D/lib/X11/doc/html" >> ${TMPPLIST} -.if defined(MLINKS) - @${ECHO_CMD} ${MLINKS} | ${AWK} \ - '{ for (i=1; i<=NF; i++) { \ - if (i % 2 == 0) { printf "lib/X11/doc/html/%s.html\n", $$i } \ - } }' >> ${TMPPLIST} -.endif -.endif -.endfor - @if [ -f ${PLIST} ]; then \ - ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} ${PLIST} >> ${TMPPLIST}; \ - fi -.for dir in ${PLIST_DIRS} - @${ECHO_CMD} ${dir} | ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} | ${SED} -e 's,^,@dirrm ,' >> ${TMPPLIST} -.endfor -.if defined(INSTALLS_SHLIB) && !defined(INSTALL_AS_USER) - @${ECHO_CMD} "@exec ${LDCONFIG} -m ${LDCONFIG_PLIST}" >> ${TMPPLIST} - @${ECHO_CMD} "@unexec ${LDCONFIG} -R" >> ${TMPPLIST} -.elif defined(INSTALLS_SHLIB) - @${ECHO_CMD} "@exec ${LDCONFIG} -m ${LDCONFIG_PLIST} || ${TRUE}" >> ${TMPPLIST} - @${ECHO_CMD} "@unexec ${LDCONFIG} -R || ${TRUE}" >> ${TMPPLIST} -.endif -.if !defined(NO_FILTER_SHLIBS) -.if (${PORTOBJFORMAT} == "aout") - @${SED} -e 's,\(/lib.*\.so\.[0-9]*\)$$,\1.0,' ${TMPPLIST} > ${TMPPLIST}.tmp -.else - @${SED} -e 's,\(/lib.*\.so\.[0-9]*\)\.[0-9]*$$,\1,' ${TMPPLIST} > ${TMPPLIST}.tmp -.endif - @${MV} -f ${TMPPLIST}.tmp ${TMPPLIST} -.endif -.endif - -${TMPPLIST}: - @cd ${.CURDIR} && ${MAKE} ${_ONG_MAKEFLAGS} ${__softMAKEFLAGS} generate-plist - -.PHONY: add-plist-docs -.if !target(add-plist-docs) -add-plist-docs: -.if defined(PORTDOCS) - @if ${EGREP} -qe '^@cw?d' ${TMPPLIST} && \ - [ "`${SED} -En -e '/^@cw?d[ ]*/s,,,p' ${TMPPLIST} | ${TAIL} -n 1`" != "${PREFIX}" ]; then \ - ${ECHO_CMD} "@cwd ${PREFIX}" >> ${TMPPLIST}; \ - fi - @${FIND} -P ${PORTDOCS:S/^/${DESTDIR}${DOCSDIR}\//} ! -type d 2>/dev/null | \ - ${SED} -ne 's,^${DESTDIR}${PREFIX}/,,p' >> ${TMPPLIST} - @${FIND} -P -d ${PORTDOCS:S/^/${DESTDIR}${DOCSDIR}\//} -type d 2>/dev/null | \ - ${SED} -ne 's,^${DESTDIR}${PREFIX}/,@dirrm ,p' >> ${TMPPLIST} - @if [ -d "${DESTDIR}${DOCSDIR}" ]; then \ - ${ECHO_CMD} "@unexec rmdir %D/${DOCSDIR:S,^${PREFIX}/,,} 2>/dev/null || true" >> ${TMPPLIST}; \ - fi -.else - @${DO_NADA} -.endif -.endif - -.PHONY: add-plist-info -.if !target(add-plist-info) -add-plist-info: -# Process GNU INFO files at package install/deinstall time -.for i in ${INFO} - @${ECHO_CMD} "@unexec install-info --delete %D/${INFO_PATH}/$i.info %D/${INFO_PATH}/dir" \ - >> ${TMPPLIST} - @${LS} ${DESTDIR}${PREFIX}/${INFO_PATH}/$i.info* | ${SED} -e s:${DESTDIR}${PREFIX}/::g >> ${TMPPLIST} - @${ECHO_CMD} "@exec install-info %D/${INFO_PATH}/$i.info %D/${INFO_PATH}/dir" \ - >> ${TMPPLIST} -.endfor -.if !defined(NO_MTREE) && defined(INFO) - @${ECHO_CMD} "@unexec if [ -f %D/${INFO_PATH}/dir ]; then if sed -e '1,/Menu:/d' %D/${INFO_PATH}/dir | grep -q '^[*] '; then true; else rm %D/${INFO_PATH}/dir; fi; fi" >> ${TMPPLIST} -.else - @${DO_NADA} -.endif -.endif - -# Compress (or uncompress) and symlink manpages. -.PHONY: compress-man -.if !target(compress-man) -compress-man: -.if defined(_MANPAGES) || defined(_MLINKS) -.if ${MANCOMPRESSED} == yes && defined(NOMANCOMPRESS) - @${ECHO_MSG} "===> Uncompressing manual pages for ${PKGNAME}" - @_manpages='${_MANPAGES:S/^/${DESTDIR}/:S/'/'\''/g}' && [ "$${_manpages}" != "" ] && ( eval ${GUNZIP_CMD} $${_manpages} ) || ${TRUE} -.elif ${MANCOMPRESSED} == no && !defined(NOMANCOMPRESS) - @${ECHO_MSG} "===> Compressing manual pages for ${PKGNAME}" - @_manpages='${_MANPAGES:S/^/${DESTDIR}/:S/'/'\''/g}' && [ "$${_manpages}" != "" ] && ( eval ${GZIP_CMD} $${_manpages} ) || ${TRUE} -.endif -.if defined(_MLINKS) - @set ${_MLINKS}; \ - while :; do \ - [ $$# -eq 0 ] && break || ${TRUE}; \ - ${RM} -f ${DESTDIR}$${2%.gz}; ${RM} -f ${DESTDIR}$$2.gz; \ - ${LN} -fs `${ECHO_CMD} $$1 $$2 | ${AWK} '{ \ - z=split($$1, a, /\//); x=split($$2, b, /\//); \ - while (a[i] == b[i]) i++; \ - for (q=i; q<x; q++) printf "../"; \ - for (; i<z; i++) printf a[i] "/"; printf a[z]; }'` ${DESTDIR}$$2; \ - shift; shift; \ - done -.endif -.else - @${DO_NADA} -.endif -.endif - -# 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 - -.PHONY: fake-pkg -.if !target(fake-pkg) -fake-pkg: -.if !defined(NO_PKG_REGISTER) - @if [ ! -d ${_PKG_DBDIR} ]; then ${RM} -f ${_PKG_DBDIR}; ${MKDIR} ${_PKG_DBDIR}; fi - @${RM} -f /tmp/${PKGNAME}-required-by -.if defined(FORCE_PKG_REGISTER) - @if [ -e ${_PKG_DBDIR}/${PKGNAME}/+REQUIRED_BY ]; then \ - ${CP} ${_PKG_DBDIR}/${PKGNAME}/+REQUIRED_BY /tmp/${PKGNAME}-required-by; \ - fi - @${RM} -rf ${_PKG_DBDIR}/${PKGNAME} -.endif - @if [ ! -d ${_PKG_DBDIR}/${PKGNAME} ]; then \ - ${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; \ - ${ECHO_CMD} ${COMMENT:Q} > ${_PKG_DBDIR}/${PKGNAME}/+COMMENT; \ - if [ -f ${PKGINSTALL} ]; then \ - ${CP} ${PKGINSTALL} ${_PKG_DBDIR}/${PKGNAME}/+INSTALL; \ - fi; \ - if [ -f ${PKGDEINSTALL} ]; then \ - ${CP} ${PKGDEINSTALL} ${_PKG_DBDIR}/${PKGNAME}/+DEINSTALL; \ - fi; \ - if [ -f ${PKGREQ} ]; then \ - ${CP} ${PKGREQ} ${_PKG_DBDIR}/${PKGNAME}/+REQUIRE; \ - fi; \ - if [ -f ${PKGMESSAGE} ]; then \ - ${CP} ${PKGMESSAGE} ${_PKG_DBDIR}/${PKGNAME}/+DISPLAY; \ - fi; \ - for dep in `${SETENV} PKG_DBDIR=${_PKG_DBDIR} ${PKG_INFO} -qf ${PKGNAME} | ${GREP} -w ^@pkgdep | ${AWK} '{print $$2}' | ${SORT} -u`; do \ - if [ -d ${_PKG_DBDIR}/$$dep -a -z `${ECHO_CMD} $$dep | ${GREP} -E ${PKG_IGNORE_DEPENDS}` ]; then \ - if ! ${GREP} ^${PKGNAME}$$ ${_PKG_DBDIR}/$$dep/+REQUIRED_BY \ - >/dev/null 2>&1; then \ - ${ECHO_CMD} ${PKGNAME} >> ${_PKG_DBDIR}/$$dep/+REQUIRED_BY; \ - fi; \ - fi; \ - done; \ - fi -.if !defined(NO_MTREE) - @if [ -f ${MTREE_FILE} ]; then \ - ${CP} ${MTREE_FILE} ${_PKG_DBDIR}/${PKGNAME}/+MTREE_DIRS; \ - fi -.endif - @if [ -e /tmp/${PKGNAME}-required-by ]; then \ - ${CAT} /tmp/${PKGNAME}-required-by >> ${_PKG_DBDIR}/${PKGNAME}/+REQUIRED_BY; \ - ${RM} -f /tmp/${PKGNAME}-required-by; \ - fi -.else - @${DO_NADA} -.endif -.endif - -# 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 -# the habit of typing `make depend all install' as a matter of course. -# -.PHONY: depend -.if !target(depend) -depend: -.endif - -# Same goes for tags -.PHONY: tags -.if !target(tags) -tags: -.endif - -.if !defined(NOPRECIOUSMAKEVARS) -.for softvar in CKSUMFILES _MLINKS -.if defined(${softvar}) -__softMAKEFLAGS+= '${softvar}+=${${softvar}:S/'/'\''/g}' -.endif -.endfor -# These won't change, so we can pass them through the environment -.MAKEFLAGS: \ - ARCH="${ARCH:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ - OPSYS="${OPSYS:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ - OSREL="${OSREL:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ - OSVERSION="${OSVERSION:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ - PORTOBJFORMAT="${PORTOBJFORMAT:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ - SYSTEMVERSION="${SYSTEMVERSION:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" -.endif - -.if !target(config) -config: -.if !defined(OPTIONS) - @${ECHO_MSG} "===> No options to configure" -.else -.if ${OPTIONSFILE} != ${_OPTIONSFILE} - @${ECHO_MSG} "===> Using wrong configuration file ${_OPTIONSFILE}" - @exit 1 -.endif -.if ${UID} != 0 && !defined(INSTALL_AS_USER) - @${ECHO_MSG} "===> Switching to root credentials to create `${DIRNAME} ${_OPTIONSFILE}`" - @(${SU_CMD} "${SH} -c \"${MKDIR} `${DIRNAME} ${_OPTIONSFILE}` 2> /dev/null\"") || \ - (${ECHO_MSG} "===> Cannot create `${DIRNAME} ${_OPTIONSFILE}`, check permissions"; exit 1) - @${ECHO_MSG} "===> Returning to user credentials" -.else - @(${MKDIR} `${DIRNAME} ${_OPTIONSFILE}` 2> /dev/null) || \ - (${ECHO_MSG} "===> Cannot create `${DIRNAME} ${_OPTIONSFILE}`, check permissions"; exit 1) -.endif - -@if [ -e ${_OPTIONSFILE} ]; then \ - . ${_OPTIONSFILE}; \ - fi; \ - set ${OPTIONS} XXX; \ - while [ $$# -gt 3 ]; do \ - OPTIONSLIST="$${OPTIONSLIST} $$1"; \ - defaultval=$$3; \ - withvar=WITH_$$1; \ - withoutvar=WITHOUT_$$1; \ - withval=$$(eval ${ECHO_CMD} $$\{$${withvar}\}); \ - withoutval=$$(eval ${ECHO_CMD} $$\{$${withoutvar}\}); \ - if [ ! -z "$${withval}" ]; then \ - val=on; \ - elif [ ! -z "$${withoutval}" ]; then \ - val=off; \ - else \ - val=$$3; \ - fi; \ - DEFOPTIONS="$${DEFOPTIONS} $$1 \"$$2\" $${val}"; \ - shift 3; \ - done; \ - TMPOPTIONSFILE=$$(${MKTEMP} -t portoptions); \ - trap "${RM} -f $${TMPOPTIONSFILE}; exit 1" 1 2 3 5 10 13 15; \ - ${SH} -c "${DIALOG} --checklist \"Options for ${PKGNAME:C/-([^-]+)$/ \1/}\" 21 70 15 $${DEFOPTIONS} 2> $${TMPOPTIONSFILE}"; \ - status=$$?; \ - if [ $${status} -ne 0 ] ; then \ - ${RM} -f $${TMPOPTIONSFILE}; \ - ${ECHO_MSG} "===> Options unchanged"; \ - exit 0; \ - fi; \ - if [ ! -e ${TMPOPTIONSFILE} ]; then \ - ${ECHO_MSG} "===> No user-specified options to save for ${PKGNAME}"; \ - exit 0; \ - fi; \ - SELOPTIONS=$$(${CAT} $${TMPOPTIONSFILE}); \ - ${RM} -f $${TMPOPTIONSFILE}; \ - TMPOPTIONSFILE=$$(${MKTEMP} -t portoptions); \ - trap "${RM} -f $${TMPOPTIONSFILE}; exit 1" 1 2 3 5 10 13 15; \ - ${ECHO_CMD} "# This file is auto-generated by 'make config'." > $${TMPOPTIONSFILE}; \ - ${ECHO_CMD} "# No user-servicable parts inside!" >> $${TMPOPTIONSFILE}; \ - ${ECHO_CMD} "# Options for ${PKGNAME}" >> $${TMPOPTIONSFILE}; \ - ${ECHO_CMD} "_OPTIONS_READ=${PKGNAME}" >> $${TMPOPTIONSFILE}; \ - for i in $${OPTIONSLIST}; do \ - ${ECHO_CMD} $${SELOPTIONS} | ${GREP} -qw $${i}; \ - if [ $$? -eq 0 ]; then \ - ${ECHO_CMD} WITH_$${i}=true >> $${TMPOPTIONSFILE}; \ - else \ - ${ECHO_CMD} WITHOUT_$${i}=true >> $${TMPOPTIONSFILE}; \ - fi; \ - done; \ - if [ `${ID} -u` != 0 -a "x${INSTALL_AS_USER}" = "x" ]; then \ - ${ECHO_MSG} "===> Switching to root credentials to write ${_OPTIONSFILE}"; \ - ${SU_CMD} "${CAT} $${TMPOPTIONSFILE} > ${_OPTIONSFILE}"; \ - ${ECHO_MSG} "===> Returning to user credentials"; \ - else \ - ${CAT} $${TMPOPTIONSFILE} > ${_OPTIONSFILE}; \ - fi; \ - ${RM} -f $${TMPOPTIONSFILE} -.endif -.endif - -.if !target(showconfig) -showconfig: -.if defined(OPTIONS) && exists(${_OPTIONSFILE}) - @${ECHO_MSG} "===> The following configuration options are set for ${PKGNAME}:" - -@if [ -e ${_OPTIONSFILE} ]; then \ - . ${_OPTIONSFILE}; \ - fi; \ - set ${OPTIONS} XXX; \ - while [ $$# -gt 3 ]; do \ - defaultval=$$3; \ - withvar=WITH_$$1; \ - withoutvar=WITHOUT_$$1; \ - withval=$$(eval ${ECHO_CMD} $$\{$${withvar}\}); \ - withoutval=$$(eval ${ECHO_CMD} $$\{$${withoutvar}\}); \ - if [ ! -z "$${withval}" ]; then \ - val=on; \ - elif [ ! -z "$${withoutval}" ]; then \ - val=off; \ - else \ - val="$$3 (default)"; \ - fi; \ - ${ECHO_MSG} " $$1=$${val} \"$$2\""; \ - shift 3; \ - done -.else - @${ECHO_MSG} "===> No configuration options are set for this port" -.if defined(OPTIONS) - @${ECHO_MSG} " Use 'make config' to set default values" -.endif -.endif -.endif - -.if !target(rmconfig) -rmconfig: -.if defined(OPTIONS) && exists(${_OPTIONSFILE}) - -@${ECHO_MSG} "===> Removing user-configured options for ${PKGNAME}"; \ - if [ `${ID} -u` != 0 -a "x${INSTALL_AS_USER}" = "x" ]; then \ - ${ECHO_MSG} "===> Switching to root credentials to remove ${_OPTIONSFILE} and `${DIRNAME} ${_OPTIONSFILE}`"; \ - ${SU_CMD} "${RM} -f ${_OPTIONSFILE} ; \ - ${RMDIR} `${DIRNAME} ${_OPTIONSFILE}`"; \ - ${ECHO_MSG} "===> Returning to user credentials"; \ - else \ - ${RM} -f ${_OPTIONSFILE}; \ - ${RMDIR} `${DIRNAME} ${_OPTIONSFILE}`; \ - fi -.else - @${ECHO_MSG} "===> No user-specified options configured for ${PKGNAME}" -.endif -.endif |