diff options
Diffstat (limited to 'mk/buildlink3/bsd.buildlink3.mk')
-rw-r--r-- | mk/buildlink3/bsd.buildlink3.mk | 1035 |
1 files changed, 194 insertions, 841 deletions
diff --git a/mk/buildlink3/bsd.buildlink3.mk b/mk/buildlink3/bsd.buildlink3.mk index 75f51b4ac50..5960f16d7f9 100644 --- a/mk/buildlink3/bsd.buildlink3.mk +++ b/mk/buildlink3/bsd.buildlink3.mk @@ -1,5 +1,39 @@ -# $NetBSD: bsd.buildlink3.mk,v 1.153 2004/09/08 08:02:00 jlam Exp $ -# +# $NetBSD: bsd.buildlink3.mk,v 1.154 2004/09/21 15:01:40 jlam Exp $ +# +# Copyright (c) 2004 The NetBSD Foundation, Inc. +# All rights reserved. +# +# This code is derived from software contributed to The NetBSD Foundation +# by Johnny C. Lam. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by the NetBSD +# Foundation, Inc. and its contributors. +# 4. Neither the name of The NetBSD Foundation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + # An example package buildlink3.mk file: # # -------------8<-------------8<-------------8<-------------8<------------- @@ -47,21 +81,20 @@ # BUILDLINK_* public buildlink-related variables usable in other Makefiles # _BLNK_* private buildlink-related variables to this Makefile -ECHO_BUILDLINK_MSG?= ${TRUE} +.if ${PKG_DEBUG_LEVEL} > 0 +ECHO_BUILDLINK_MSG?= ${ECHO} +.else +ECHO_BUILDLINK_MSG?= ${ECHO_WRAPPER_MSG} +.endif BUILDLINK_DIR= ${WRKDIR}/.buildlink +BUILDLINK_BINDIR= ${BUILDLINK_DIR}/bin +BUILDLINK_SRCDIR= ${.CURDIR}/../../mk/buildlink3 BUILDLINK_X11_DIR= ${BUILDLINK_DIR:H}/.x11-buildlink -BUILDLINK_SHELL?= ${SH} -BUILDLINK_OPSYS?= ${OPSYS} -_BLNK_VARS_MK= ${BUILDLINK_DIR}/vars.mk -.if exists(${_BLNK_VARS_MK}) -. include "${_BLNK_VARS_MK}" -.endif +.PHONY: pre-buildlink do-buildlink post-buildlink -# Prepend ${BUILDLINK_DIR}/bin to the PATH so that the wrappers are found -# first when searching for executables. -# -PREPEND_PATH+= ${BUILDLINK_DIR}/bin +# Prepend ${BUILDLINK_BINDIR} to the PATH. +PREPEND_PATH+= ${BUILDLINK_BINDIR} # BUILDLINK_DEPENDS contains the list of packages for which we add # dependencies. @@ -253,7 +286,11 @@ ${_depmethod_}+= ${_BLNK_ADD_TO.${_depmethod_}} . endif .endfor # _BLNK_DEPENDS_LIST -.if !empty(PHASES_AFTER_BUILDLINK:M${PKG_PHASE}) +### +### BEGIN: after "wrapper" phase +### +.if !empty(PHASES_AFTER_WRAPPER:M${PKG_PHASE}) + # Generate default values for: # # _BLNK_PKG_DBDIR.<pkg> contains all of the package metadata @@ -321,7 +358,7 @@ _BLNK_PKG_DBDIR.${_pkg_}!= \ . endif . endfor . if empty(_BLNK_PKG_DBDIR.${_pkg_}:M*not_found) -BUILDLINK_VARS+= _BLNK_PKG_DBDIR.${_pkg_} +WRAPPER_VARS+= _BLNK_PKG_DBDIR.${_pkg_} . endif . endif @@ -352,7 +389,7 @@ BUILDLINK_PREFIX.${_pkg_}= BUILDLINK_PREFIX.${_pkg_}_not_found . endif . endif . if empty(BUILDLINK_PREFIX.${_pkg_}:M*not_found) -BUILDLINK_VARS+= BUILDLINK_PREFIX.${_pkg_} +WRAPPER_VARS+= BUILDLINK_PREFIX.${_pkg_} . endif . endif @@ -411,7 +448,7 @@ BUILDLINK_LDFLAGS+= -L${_dir_} . endif . endfor . endif -. if !empty(BUILDLINK_RPATHDIRS.${_pkg_}) && (${_USE_RPATH} == "yes") +. if !empty(BUILDLINK_RPATHDIRS.${_pkg_}) . for _dir_ in ${BUILDLINK_RPATHDIRS.${_pkg_}:S/^/${BUILDLINK_PREFIX.${_pkg_}}\//} . if exists(${_dir_}) . if empty(BUILDLINK_LDFLAGS:M${COMPILER_RPATH_FLAG}${_dir_}) @@ -426,8 +463,7 @@ BUILDLINK_LDFLAGS+= ${COMPILER_RPATH_FLAG}${_dir_} # runtime library search path. # .if ${PKG_INSTALLATION_TYPE} == "pkgviews" -. if (${_USE_RPATH} == "yes") && \ - empty(BUILDLINK_LDFLAGS:M${COMPILER_RPATH_FLAG}${PREFIX}/lib) +. if empty(BUILDLINK_LDFLAGS:M${COMPILER_RPATH_FLAG}${PREFIX}/lib) BUILDLINK_LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib . endif .endif @@ -437,7 +473,7 @@ BUILDLINK_LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib # fulfilled through the default view. # .for _pkg_ in ${_BLNK_PACKAGES} -. if !empty(BUILDLINK_RPATHDIRS.${_pkg_}) && (${_USE_RPATH} == "yes") +. if !empty(BUILDLINK_RPATHDIRS.${_pkg_}) . for _dir_ in ${BUILDLINK_RPATHDIRS.${_pkg_}:S/^/${LOCALBASE}\//} . if exists(${_dir_}) . if empty(BUILDLINK_LDFLAGS:M${COMPILER_RPATH_FLAG}${_dir_}) @@ -450,8 +486,7 @@ BUILDLINK_LDFLAGS+= ${COMPILER_RPATH_FLAG}${_dir_} # # Ensure that ${LOCALBASE}/lib is in the runtime library search path. # -.if (${_USE_RPATH} == "yes") && \ - empty(BUILDLINK_LDFLAGS:M${COMPILER_RPATH_FLAG}${LOCALBASE}/lib) +.if empty(BUILDLINK_LDFLAGS:M${COMPILER_RPATH_FLAG}${LOCALBASE}/lib) BUILDLINK_LDFLAGS+= ${COMPILER_RPATH_FLAG}${LOCALBASE}/lib .endif # @@ -462,8 +497,7 @@ BUILDLINK_LDFLAGS+= ${COMPILER_RPATH_FLAG}${LOCALBASE}/lib . if empty(BUILDLINK_LDFLAGS:M-L${X11BASE}/lib${ABI}) BUILDLINK_LDFLAGS+= -L${X11BASE}/lib${ABI} . endif -. if (${_USE_RPATH} == "yes") && \ - empty(BUILDLINK_LDFLAGS:M${COMPILER_RPATH_FLAG}${X11BASE}/lib${ABI}) +. if empty(BUILDLINK_LDFLAGS:M${COMPILER_RPATH_FLAG}${X11BASE}/lib${ABI}) BUILDLINK_LDFLAGS+= ${COMPILER_RPATH_FLAG}${X11BASE}/lib${ABI} . endif .endif @@ -512,16 +546,6 @@ buildlink-directories: ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${BUILDLINK_DIR}/include ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${BUILDLINK_DIR}/lib${ABI} -# Create the saved variables Makefile fragment to pass variables through -# to sub-make processes invoked on the same Makefile. -# -do-buildlink: ${_BLNK_VARS_MK} - -# Create the buildlink wrappers before any of the other buildlink targets -# are run, as the wrappers may need to be used in some of those targets. -# -do-buildlink: buildlink-wrappers buildlink-${_BLNK_OPSYS}-wrappers - # The following variables are all optionally defined and control which # package files are symlinked into ${BUILDLINK_DIR} and how their names # are transformed during the symlinking: @@ -647,9 +671,8 @@ ${_BLNK_COOKIE.${_pkg_}}: # _BLNK_LT_ARCHIVE_FILTER.${_pkg_} is a command-line filter used in # the previous target for transforming libtool archives (*.la) to -# allow libtool to properly interact with # buildlink at link time by -# linking against the libraries pointed to by symlinks in -# ${BUILDLINK_DIR}. +# allow libtool to properly interact with buildlink at link time by +# linking against the libraries pointed to by symlinks in ${BUILDLINK_DIR}. # _BLNK_LT_ARCHIVE_FILTER.${_pkg_}= \ ${SED} ${_BLNK_LT_ARCHIVE_FILTER_SED_SCRIPT.${_pkg_}} @@ -657,24 +680,50 @@ _BLNK_LT_ARCHIVE_FILTER.${_pkg_}= \ _BLNK_SEP= \ \`\"':;, _BLNK_LT_ARCHIVE_FILTER_SED_SCRIPT.${_pkg_}= # empty # -# - Modify the dependency_libs line by changing all full paths to -# other *.la files into the canonical ${BUILDLINK_DIR} path. +# Modify the dependency_libs line by changing all full paths to other *.la +# files into the canonical ${BUILDLINK_DIR} path. # _BLNK_LT_ARCHIVE_FILTER_SED_SCRIPT.${_pkg_}+= \ - -e "/^dependency_libs=/s,/usr\(/lib/lib[^/${_BLNK_SEP}]*\.la\),${BUILDLINK_DIR}\\1,g" \ - -e "/^dependency_libs=/s,${DEPOTBASE}/[^${_BLNK_SEP}]*\(/[^${_BLNK_SEP}]*/lib[^/${_BLNK_SEP}]*\.la\),${BUILDLINK_DIR}\\1,g" \ - -e "/^dependency_libs=/s,${X11BASE}\(/[^${_BLNK_SEP}]*/lib[^/${_BLNK_SEP}]*\.la\),${BUILDLINK_X11_DIR}\\1,g" \ - -e "/^dependency_libs=/s,${LOCALBASE}\(/[^${_BLNK_SEP}]*/lib[^/${_BLNK_SEP}]*\.la\),${BUILDLINK_DIR}\\1,g" \ - -e "/^dependency_libs=/s,-L/usr/lib[^/${_BLNK_SEP}]*[ ]*,,g" \ - -e "/^dependency_libs=/s,-L${X11BASE}/[^${_BLNK_SEP}]*[ ]*,,g" \ - -e "/^dependency_libs=/s,-L${LOCALBASE}/[^${_BLNK_SEP}]*[ ]*,,g" -. if (${PKG_INSTALLATION_TYPE} == "overwrite") || \ - !empty(BUILDLINK_IS_DEPOT.${_pkg_}:M[nN][oO]) + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)/usr\(/lib/[^${_BLNK_SEP}]*lib[^/${_BLNK_SEP}]*\.la[${_BLNK_SEP}]\),\\1${BUILDLINK_DIR}\\2,g" \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)/usr\(/lib/[^${_BLNK_SEP}]*lib[^/${_BLNK_SEP}]*\.la[${_BLNK_SEP}]\),\\1${BUILDLINK_DIR}\\2,g" \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)${DEPOTBASE}/[^/${_BLNK_SEP}]*\(/[^${_BLNK_SEP}]*lib[^/${_BLNK_SEP}]*\.la[${_BLNK_SEP}]\),\\1${BUILDLINK_DIR}\\2,g" \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)${DEPOTBASE}/[^/${_BLNK_SEP}]*\(/[^${_BLNK_SEP}]*lib[^/${_BLNK_SEP}]*\.la[${_BLNK_SEP}]\),\\1${BUILDLINK_DIR}\\2,g" \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)${X11BASE}\(/[^${_BLNK_SEP}]*lib[^/${_BLNK_SEP}]*\.la[${_BLNK_SEP}]\),\\1${BUILDLINK_X11_DIR}\\2,g" \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)${X11BASE}\(/[^${_BLNK_SEP}]*lib[^/${_BLNK_SEP}]*\.la[${_BLNK_SEP}]\),\\1${BUILDLINK_X11_DIR}\\2,g" \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)${LOCALBASE}\(/[^${_BLNK_SEP}]*lib[^/${_BLNK_SEP}]*\.la[${_BLNK_SEP}]\),\\1${BUILDLINK_DIR}\\2,g" \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)${LOCALBASE}\(/[^${_BLNK_SEP}]*lib[^/${_BLNK_SEP}]*\.la[${_BLNK_SEP}]\),\\1${BUILDLINK_DIR}\\2,g" +# +# Modify the dependency_libs line by removing -L/usr/lib, which is implied. # -# - Modify the libdir line to point to within ${BUILDLINK_DIR}. -# This prevents libtool from looking into the original directory -# for other *.la files. +_BLNK_LT_ARCHIVE_FILTER_SED_SCRIPT.${_pkg_}+= \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)-L/usr/lib\([${_BLNK_SEP}]\),\\1\\2,g" \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)-L/usr/lib\([${_BLNK_SEP}]\),\\1\\2,g" \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)-L/usr/lib/\.\([${_BLNK_SEP}]\),\\1\\2,g" \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)-L/usr/lib/\.\([${_BLNK_SEP}]\),\\1\\2,g" +# +# Modify the dependency_libs line by removing -L${LOCALBASE}/* and +# -L${X11BASE}/*, since those are automatically added by the buildlink3.mk +# files. +# +_BLNK_LT_ARCHIVE_FILTER_SED_SCRIPT.${_pkg_}+= \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)-L${X11BASE}/[^${_BLNK_SEP}]*\([${_BLNK_SEP}]\),\\1\\2,g" \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)-L${X11BASE}/[^${_BLNK_SEP}]*\([${_BLNK_SEP}]\),\\1\\2,g" \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)-L${LOCALBASE}/[^${_BLNK_SEP}]*\([${_BLNK_SEP}]\),\\1\\2,g" \ + -e "/^dependency_libs=/s,\([${_BLNK_SEP}]\)-L${LOCALBASE}/[^${_BLNK_SEP}]*\([${_BLNK_SEP}]\),\\1\\2,g" +# +# Modify the dependency_libs line by cleaning up any leading and trailing +# whitespace. +# +_BLNK_LT_ARCHIVE_FILTER_SED_SCRIPT.${_pkg_}+= \ + -e "/^dependency_libs=/s,^\(dependency_libs='\) *,\\1,g" \ + -e "/^dependency_libs=/s, *'$$,',g" # +# Modify the libdir line to point to within ${BUILDLINK_DIR}. +# This prevents libtool from looking into the original directory +# for other *.la files. +# +. if (${PKG_INSTALLATION_TYPE} == "overwrite") || \ + !empty(BUILDLINK_IS_DEPOT.${_pkg_}:M[nN][oO]) _BLNK_LT_ARCHIVE_FILTER_SED_SCRIPT.${_pkg_}+= \ -e "/^libdir=/s,/usr\(/lib/[^${_BLNK_SEP}]*\),${BUILDLINK_DIR}\\1,g" \ -e "/^libdir=/s,${DEPOTBASE}/[^/${_BLNK_SEP}]*\(/[^${_BLNK_SEP}]*\),${BUILDLINK_DIR}\\1,g" \ @@ -696,39 +745,6 @@ _BLNK_TARGETS+= ${BUILDLINK_TARGETS} do-buildlink: ${_target_} .endfor -# There are three different parts we can add to the common transforming -# cache to speed things up: -# -# passthru automatically accept certain options without -# further checking -# -# transform change -[IL]{${X11BASE},${LOCALBASE},${DEPOTBASE}/*} -# to the correct ${BUILDLINK_DIR} reference -# -# block block certain options without further checking -# -# Seeding the cache appropriately lets us handle large classes of options -# without having to go through the wrapper logic file, which generates -# a cache hit for every single option and bloats the cache quite bit more. -# -_BLNK_SEED_CACHE?= passthru # transform block - -# The caching code, which greatly speeds up the build process, doesn't -# work completely correctly on certain platforms. -# -_BLNK_PARTIAL_CACHE_ONLY= Darwin-5.*-* - -_BLNK_FULL_CACHING?= YES -.for _pattern_ in ${_BLNK_PARTIAL_CACHE_ONLY} -. if !empty(MACHINE_PLATFORM:M${_pattern_}) -_BLNK_FULL_CACHING= NO -. endif -.endfor -.if !empty(_BLNK_FULL_CACHING:M[yY][eE][sS]) -CONFIGURE_ENV+= BUILDLINK_CACHE_ALL=yes -MAKE_ENV+= BUILDLINK_CACHE_ALL=yes -.endif - # _BLNK_PASSTHRU_DIRS contains the list of directories which we allow in # preprocessor's header, linker's library, or the runtime library # search paths. The values of this list represent entire directory @@ -863,23 +879,10 @@ _BLNK_PHYSICAL_PATH.${_var_}!= \ else \ ${ECHO} ${${_var_}}; \ fi -BUILDLINK_VARS+= _BLNK_PHYSICAL_PATH.${_var_} +WRAPPER_VARS+= _BLNK_PHYSICAL_PATH.${_var_} . endif .endfor -# Remove -Wl,-R* and *-rpath* if _USE_RPATH == "no". -# Transform -Wl,-R* and *-rpath* if Sun compilers are used. -# -.if defined(_USE_RPATH) && !empty(_USE_RPATH:M[nN][oO]) -_BLNK_TRANSFORM+= no-rpath -.endif -# -# Remove rpath options that try to add relative paths to the runtime -# library search path. This basically partly cleans up after lazy -# programmers. -# -_BLNK_TRANSFORM+= abs-rpath -# # Transform all references to the physical paths to some important # directories into their given names. # @@ -890,6 +893,10 @@ _BLNK_TRANSFORM+= mangle:${_BLNK_PHYSICAL_PATH.${_var_}}:${${_var_}} . endif .endfor # +# Strip trailing /. from options. +# +_BLNK_TRANSFORM+= strip-slashdot: +# # Protect work directories and the dependency directories from all the # transformations we're about to do. # @@ -900,8 +907,8 @@ _BLNK_TRANSFORM+= mangle:${_dir_}:${_BLNK_MANGLE_DIR.${_dir_}} # Protect -I/usr/include/* and -L/usr/lib/* from transformations (these # aren't part of the normal header or library search paths). # -_BLNK_TRANSFORM+= sub-mangle:-I/usr/include:-I${_BLNK_MANGLE_DIR./usr/include} -_BLNK_TRANSFORM+= sub-mangle:-L/usr/lib:-L${_BLNK_MANGLE_DIR./usr/lib} +_BLNK_TRANSFORM+= opt-sub:-I/usr/include:-I${_BLNK_MANGLE_DIR./usr/include} +_BLNK_TRANSFORM+= opt-sub:-L/usr/lib:-L${_BLNK_MANGLE_DIR./usr/lib} # # Change any buildlink directories in runtime library search paths into # the canonical actual installed paths. @@ -931,11 +938,6 @@ _BLNK_TRANSFORM+= sub-rpath:/usr/lib:${_BLNK_MANGLE_DIR./usr/lib} _BLNK_TRANSFORM+= depot:${DEPOTBASE}:${LOCALBASE} .endif # -# Convert direct paths to shared libraries into "-Ldir -llib" equivalents. -# -_BLNK_TRANSFORM+= p:${_BLNK_MANGLE_SED_PATTERN:Q} -_BLNK_TRANSFORM+= p: -# # Convert direct paths to static libraries and libtool archives in # ${LOCALBASE} or ${X11BASE} into references into ${BUILDLINK_DIR}. # @@ -977,7 +979,7 @@ _BLNK_TRANSFORM+= ${BUILDLINK_TRANSFORM} # Explicitly remove everything else that's an absolute path, since we've # already protected the ones we care about. # -_BLNK_TRANSFORM+= r:/ +_BLNK_TRANSFORM+= no-abspath # # Undo the protection for the directories that we allow to be specified # for the runtime library search path. @@ -993,48 +995,7 @@ _BLNK_TRANSFORM+= rpath:${_BLNK_MANGLE_DIR.${_dir_}}:${_dir_} _BLNK_TRANSFORM+= mangle:${_BLNK_MANGLE_DIR.${_dir_}}:${_dir_} .endfor -# Only do the (expensive) reordering step if we have reordering -# transformations. -# -.if !empty(_BLNK_TRANSFORM:Mreorder\:*) -MAKE_ENV+= BUILDLINK_REORDER=yes -.endif - -_BLNK_TRANSFORM_SED+= -f ${_BLNK_TRANSFORM_SEDFILE} -_BLNK_UNTRANSFORM_SED+= -f ${_BLNK_UNTRANSFORM_SEDFILE} - -# UNWRAP_PATTERNS and UNWRAP_FILES list shell globs and files relative to -# ${WRKSRC} that need to have reference to ${BUILDLINK_DIR} stripped out -# of them. -# -_UNBUILDLINK_PATTERNS= ${UNWRAP_PATTERNS} -_UNBUILDLINK_PATTERNS+= *-config -_UNBUILDLINK_PATTERNS+= *Conf.sh -_UNBUILDLINK_PATTERNS+= *.pc -_UNBUILDLINK_PATTERNS_FIND= \ - \( ${_UNBUILDLINK_PATTERNS:S/$/!/:S/^/-o -name !/:S/!/"/g:S/-o//1} \) -_UNBUILDLINK_FILES= \ - ${UNWRAP_FILES} \ - `${FIND} . ${_UNBUILDLINK_PATTERNS_FIND} -print | ${SED} -e 's|^\./||' | ${SORT} -u` -# -# When "unbuildlinkifying" a file, we must remove references to the -# buildlink directories and change any -llib to the proper replacement -# libraries (-lreadline -> -ledit, etc.). Redundant -Idir and -Ldir -# options are removed to optimize the resulting file. Also, prefer the -# .la files in ${LOCALBASE}/lib over the ones in ${DEPOTBASE}/*/lib when -# creating new .la files. This makes "overwrite" packages look and feel -# more like they would without the pkgviews integration. -# -UNBUILDLINK_SED?= # empty -_UNBUILDLINK_SED= ${UNBUILDLINK_SED} -_UNBUILDLINK_SED+= ${_BLNK_UNTRANSFORM_SED} - -SUBST_CLASSES+= unbuildlink -SUBST_STAGE.unbuildlink= post-build -SUBST_MESSAGE.unbuildlink= \ - "Fixing buildlink references in files-to-be-installed." -SUBST_FILES.unbuildlink= ${_UNBUILDLINK_FILES} -SUBST_SED.unbuildlink= ${_UNBUILDLINK_SED} +WRAPPER_TRANSFORM_CMDS+= ${_BLNK_TRANSFORM} # Generate wrapper scripts for the compiler tools that sanitize the # argument list by converting references to ${LOCALBASE} and ${X11BASE} @@ -1048,188 +1009,41 @@ SUBST_SED.unbuildlink= ${_UNBUILDLINK_SED} # ALIASES.CC, ALIASES.LD, etc. are the other names by which each wrapper # may be invoked. # -_BLNK_WRAPPEES+= AS -_BLNK_WRAPPEES+= CC -_BLNK_WRAPPEES+= CPP -_BLNK_WRAPPEES+= CXX -_BLNK_WRAPPEES+= LD -_BLNK_WRAPPEES+= FC -_BLNK_WRAPPEES+= LIBTOOL SHLIBTOOL .if defined(USE_LIBTOOL) -_LIBTOOL= ${BUILDLINK_LIBTOOL} -_SHLIBTOOL= ${BUILDLINK_SHLIBTOOL} -.endif -.if defined(USE_X11) -IMAKE?= ${X11BASE}/bin/imake -_BLNK_WRAPPEES+= IMAKE +_WRAPPEES+= LIBTOOL +_WRAPPEES+= SHLIBTOOL +_LIBTOOL= ${WRAPPER_LIBTOOL} +_SHLIBTOOL= ${WRAPPER_SHLIBTOOL} .endif -_ALIASES.AS= as -_ALIASES.CC= cc gcc -_ALIASES.CXX= c++ g++ CC -_ALIASES.CPP= cpp -_ALIASES.FC= f77 g77 -_ALIASES.LD= ld +_WRAP_ALIASES.LIBTOOL= libtool +_WRAP_ALIASES.SHLIBTOOL= shlibtool -# _BLNK_WRAP_*.<wrappee> variables represent "template methods" of the -# wrapper script that may be customized per wrapper: -# -# _BLNK_WRAP_{*CACHE*,*LOGIC*}.<wrappee> are parts of the wrapper script -# system as described in pkgsrc/mk/buildlink3/README. The files not -# ending in "-trans" represent pieces of the wrapper script that may -# be used to form a wrapper that doesn't translate its arguments, -# and conversely for the files ending in "-trans". By default, all -# wrappers use the "-trans" scripts. -# -# _BLNK_WRAP_ENV.<wrappee> consists of shell commands to export a shell -# environment for the wrappee. -# -# _BLNK_WRAP_SANITIZE_PATH.<wrappee> sets the PATH for calling executables -# from within the wrapper. By default, it removes the buildlink -# directory from the PATH so that sub-invocations of compiler tools -# will use the wrappees instead of the wrappers. -# -_BLNK_SANITIZED_PATH!= ${ECHO} ${PATH} | ${SED} \ - -e "s|:${BUILDLINK_DIR}[^:]*||" -e "s|${BUILDLINK_DIR}[^:]*:||" -_BLNK_WRAP_SANITIZE_PATH= PATH="${_BLNK_SANITIZED_PATH}" -_BLNK_EMPTY_FILE?= ${BUILDLINK_DIR}/bin/.empty -_BLNK_WRAP_ENV?= ${BUILDLINK_WRAPPER_ENV} -_BLNK_WRAP_BUILDCMD= ${BUILDLINK_DIR}/bin/.buildcmd -_BLNK_WRAP_QUOTEARG= ${BUILDLINK_DIR}/bin/.quotearg -_BLNK_WRAP_BUFFER= ${BUILDLINK_DIR}/bin/.buffer -_BLNK_WRAP_MARSHALL= ${BUILDLINK_DIR}/bin/.marshall -_BLNK_WRAP_PRE_CACHE= ${BUILDLINK_DIR}/bin/.pre-cache -_BLNK_WRAP_CACHE_ADD= ${BUILDLINK_DIR}/bin/.cache-add -_BLNK_WRAP_CACHE= ${BUILDLINK_DIR}/bin/.cache -_BLNK_WRAP_CACHE_ADD_TRANSFORM= ${BUILDLINK_DIR}/bin/.cache-add-trans -_BLNK_WRAP_CACHE_TRANSFORM= ${BUILDLINK_DIR}/bin/.cache-trans -_BLNK_WRAP_POST_CACHE= ${BUILDLINK_DIR}/bin/.post-cache -_BLNK_WRAP_LOGIC= ${BUILDLINK_DIR}/bin/.logic -_BLNK_WRAP_LOGIC_TRANSFORM= ${BUILDLINK_DIR}/bin/.logic-trans -_BLNK_WRAP_LOG= ${WRKLOG} -_BLNK_LIBTOOL_FIX_LA= ${BUILDLINK_DIR}/bin/.libtool-fix-la -_BLNK_FAKE_LA= ${BUILDLINK_DIR}/bin/.fake-la -_BLNK_GEN_TRANSFORM= ${BUILDLINK_DIR}/bin/.gen-transform -_BLNK_TRANSFORM_SEDFILE= ${BUILDLINK_DIR}/bin/.transform.sed -_BLNK_UNTRANSFORM_SEDFILE= ${BUILDLINK_DIR}/bin/.untransform.sed -_BLNK_REORDERLIBS= ${BUILDLINK_DIR}/bin/.reorderlibs +_BLNK_LIBTOOL_FIX_LA= ${WRAPPER_TMPDIR}/libtool-fix-la -.if defined(BUILDLINK_WRAPPER_LOG) -MAKE_ENV+= BUILDLINK_WRAPPER_LOG=${BUILDLINK_WRAPPER_LOG} -.endif - -.for _wrappee_ in ${_BLNK_WRAPPEES} -# -# _BLNK_WRAPPER_SH.<wrappee> points to the main wrapper script used to -# generate the wrapper for the wrappee. -# -_BLNK_WRAPPER_SH.${_wrappee_}= ${.CURDIR}/../../mk/buildlink3/wrapper.sh -_BLNK_WRAP_SANITIZE_PATH.${_wrappee_}= ${_BLNK_WRAP_SANITIZE_PATH} -_BLNK_WRAP_EXTRA_FLAGS.${_wrappee_}= # empty -_BLNK_WRAP_ENV.${_wrappee_}= ${_BLNK_WRAP_ENV} -_BLNK_WRAP_BUILDCMD.${_wrappee_}= ${_BLNK_WRAP_BUILDCMD} -_BLNK_WRAP_QUOTEARG.${_wrappee_}= ${_BLNK_WRAP_QUOTEARG} -_BLNK_WRAP_BUFFER.${_wrappee_}= ${_BLNK_WRAP_BUFFER} -_BLNK_WRAP_MARSHALL.${_wrappee_}= ${_BLNK_WRAP_MARSHALL} -_BLNK_WRAP_PRIVATE_PRE_CACHE.${_wrappee_}= ${_BLNK_EMPTY_FILE} -_BLNK_WRAP_PRIVATE_CACHE_ADD.${_wrappee_}= ${_BLNK_EMPTY_FILE} -_BLNK_WRAP_PRIVATE_CACHE.${_wrappee_}= ${_BLNK_EMPTY_FILE} -_BLNK_WRAP_PRIVATE_POST_CACHE.${_wrappee_}= ${_BLNK_EMPTY_FILE} -_BLNK_WRAP_CACHE_ADD.${_wrappee_}= ${_BLNK_WRAP_CACHE_ADD_TRANSFORM} -_BLNK_WRAP_CACHE.${_wrappee_}= ${_BLNK_WRAP_CACHE_TRANSFORM} -_BLNK_WRAP_LOGIC.${_wrappee_}= ${_BLNK_WRAP_LOGIC_TRANSFORM} -_BLNK_WRAP_POST_LOGIC.${_wrappee_}= ${_BLNK_EMPTY_FILE} -.endfor - -# Don't sanitize the PATH because we want libtool to invoke the wrapper -# scripts, too. -# -_BLNK_WRAPPER_SH.LIBTOOL= ${.CURDIR}/../../mk/buildlink3/libtool.sh -_BLNK_WRAP_SANITIZE_PATH.LIBTOOL= # empty -# -_BLNK_WRAPPER_SH.SHLIBTOOL= ${.CURDIR}/../../mk/buildlink3/libtool.sh -_BLNK_WRAP_SANITIZE_PATH.SHLIBTOOL= # empty +# We want libtool to invoke the wrapper scripts, too. +_WRAPPER_SH.LIBTOOL= ${BUILDLINK_SRCDIR}/libtool.sh +_WRAP_ENV.LIBTOOL= PATH="${WRAPPER_BINDIR}:${_WRAP_PATH}"; export PATH +_WRAPPER_SH.SHLIBTOOL= ${_WRAPPER_SH.LIBTOOL} +_WRAP_ENV.SHLIBTOOL= ${_WRAP_ENV.LIBTOOL} # We need to "unbuildlinkify" any libtool archives. -_BLNK_WRAP_LT_UNTRANSFORM_SED= ${_UNBUILDLINK_SED} - -.if !empty(PKGSRC_COMPILER:Mmipspro) -_BLNK_WRAP_PRIVATE_PRE_CACHE.CC= ${_BLNK_WRAP_PRE_CACHE} -_BLNK_WRAP_PRIVATE_CACHE_ADD.CC= ${BUILDLINK_DIR}/bin/.mipspro-cc-cache-add -_BLNK_WRAP_PRIVATE_CACHE.CC= ${BUILDLINK_DIR}/bin/.mipspro-cc-cache -_BLNK_WRAP_PRIVATE_POST_CACHE.CC= ${BUILDLINK_DIR}/bin/.mipspro-cc-post-cache -_BLNK_WRAP_POST_LOGIC.CC= ${BUILDLINK_DIR}/bin/.mipspro-cc-post-logic -# -# The MIPSpro C++ compiler wrapper shares cache information with the C -# compiler. -# -_BLNK_WRAP_PRIVATE_PRE_CACHE.CXX= ${_BLNK_WRAP_PRE_CACHE} -_BLNK_WRAP_PRIVATE_CACHE_ADD.CXX= ${BUILDLINK_DIR}/bin/.mipspro-cc-cache-add -_BLNK_WRAP_PRIVATE_CACHE.CXX= ${BUILDLINK_DIR}/bin/.mipspro-cc-cache -_BLNK_WRAP_PRIVATE_POST_CACHE.CXX= ${BUILDLINK_DIR}/bin/.mipspro-cc-post-cache -_BLNK_WRAP_POST_LOGIC.CXX= ${BUILDLINK_DIR}/bin/.mipspro-cc-post-logic -.endif # mipspro - -.if !empty(PKGSRC_COMPILER:Mmipspro-ucode) -_BLNK_WRAP_PRIVATE_PRE_CACHE.CC= ${_BLNK_WRAP_PRE_CACHE} -_BLNK_WRAP_PRIVATE_CACHE_ADD.CC= ${BUILDLINK_DIR}/bin/.mipspro-ucode-cc-cache-add -_BLNK_WRAP_PRIVATE_CACHE.CC= ${BUILDLINK_DIR}/bin/.mipspro-ucode-cc-cache -_BLNK_WRAP_PRIVATE_POST_CACHE.CC= ${BUILDLINK_DIR}/bin/.mipspro-ucode-cc-post-cache -_BLNK_WRAP_POST_LOGIC.CC= ${BUILDLINK_DIR}/bin/.mipspro-ucode-cc-post-logic -# -# The MIPSpro ucode C++ compiler wrapper shares cache information with the C -# compiler. -# -_BLNK_WRAP_PRIVATE_PRE_CACHE.CXX= ${_BLNK_WRAP_PRE_CACHE} -_BLNK_WRAP_PRIVATE_CACHE_ADD.CXX= ${BUILDLINK_DIR}/bin/.mipspro-ucode-cc-cache-add -_BLNK_WRAP_PRIVATE_CACHE.CXX= ${BUILDLINK_DIR}/bin/.mipspro-ucode-cc-cache -_BLNK_WRAP_PRIVATE_POST_CACHE.CXX= ${BUILDLINK_DIR}/bin/.mipspro-ucode-cc-post-cache -_BLNK_WRAP_POST_LOGIC.CXX= ${BUILDLINK_DIR}/bin/.mipspro-ucode-cc-post-logic -.endif # mipspro-ucode - -.if !empty(PKGSRC_COMPILER:Msunpro) -_BLNK_WRAP_PRIVATE_PRE_CACHE.CC= ${_BLNK_WRAP_PRE_CACHE} -_BLNK_WRAP_PRIVATE_CACHE_ADD.CC= ${BUILDLINK_DIR}/bin/.sunpro-cc-cache-add -_BLNK_WRAP_PRIVATE_CACHE.CC= ${BUILDLINK_DIR}/bin/.sunpro-cc-cache -_BLNK_WRAP_PRIVATE_POST_CACHE.CC= ${BUILDLINK_DIR}/bin/.sunpro-cc-post-cache -_BLNK_WRAP_POST_LOGIC.CC= ${BUILDLINK_DIR}/bin/.sunpro-cc-post-logic -# -# The SunPro C++ compiler wrapper shares cache information with the C -# compiler. -# -_BLNK_WRAP_PRIVATE_PRE_CACHE.CXX= ${_BLNK_WRAP_PRE_CACHE} -_BLNK_WRAP_PRIVATE_CACHE_ADD.CXX= ${BUILDLINK_DIR}/bin/.sunpro-cc-cache-add -_BLNK_WRAP_PRIVATE_CACHE.CXX= ${BUILDLINK_DIR}/bin/.sunpro-cc-cache -_BLNK_WRAP_PRIVATE_POST_CACHE.CXX= ${BUILDLINK_DIR}/bin/.sunpro-cc-post-cache -_BLNK_WRAP_POST_LOGIC.CXX= ${BUILDLINK_DIR}/bin/.sunpro-cc-post-logic -.endif # sunpro - -_BLNK_WRAP_PRIVATE_PRE_CACHE.LD= ${_BLNK_WRAP_PRE_CACHE} -_BLNK_WRAP_PRIVATE_CACHE_ADD.LD= ${BUILDLINK_DIR}/bin/.ld-cache-add -_BLNK_WRAP_PRIVATE_CACHE.LD= ${BUILDLINK_DIR}/bin/.ld-cache -_BLNK_WRAP_PRIVATE_POST_CACHE.LD= ${BUILDLINK_DIR}/bin/.ld-post-cache -_BLNK_WRAP_POST_LOGIC.LD= ${BUILDLINK_DIR}/bin/.ld-post-logic - -_BLNK_WRAP_PRIVATE_PRE_CACHE.LIBTOOL= ${_BLNK_WRAP_PRE_CACHE} -_BLNK_WRAP_PRIVATE_CACHE_ADD.LIBTOOL= ${BUILDLINK_DIR}/bin/.libtool-cache-add -_BLNK_WRAP_PRIVATE_CACHE.LIBTOOL= ${BUILDLINK_DIR}/bin/.libtool-cache -_BLNK_WRAP_PRIVATE_POST_CACHE.LIBTOOL= ${BUILDLINK_DIR}/bin/.libtool-post-cache -_BLNK_WRAP_POST_LOGIC.LIBTOOL= ${BUILDLINK_DIR}/bin/.libtool-post-logic - -# shlibtool shares cache information with libtool. -_BLNK_WRAP_PRIVATE_PRE_CACHE.SHLIBTOOL= ${_BLNK_WRAP_PRIVATE_PRE_CACHE.LIBTOOL} -_BLNK_WRAP_PRIVATE_CACHE_ADD.SHLIBTOOL= ${_BLNK_WRAP_PRIVATE_CACHE_ADD.LIBTOOL} -_BLNK_WRAP_PRIVATE_CACHE.SHLIBTOOL= ${_BLNK_WRAP_PRIVATE_CACHE.LIBTOOL} -_BLNK_WRAP_PRIVATE_POST_CACHE.SHLIBTOOL= ${_BLNK_WRAP_PRIVATE_POST_CACHE.LIBTOOL} -_BLNK_WRAP_POST_LOGIC.SHLIBTOOL= ${_BLNK_WRAP_POST_LOGIC.LIBTOOL} - -# Don't transform the arguments for imake, which uses the C preprocessor -# to generate Makefiles, so that imake will find its config files. -# -.if defined(USE_X11) -_BLNK_WRAP_CACHE_ADD.IMAKE= ${_BLNK_WRAP_CACHE_ADD} -_BLNK_WRAP_CACHE.IMAKE= ${_BLNK_WRAP_CACHE} -_BLNK_WRAP_LOGIC.IMAKE= ${_BLNK_WRAP_LOGIC} -.endif +_BLNK_WRAP_LT_UNTRANSFORM_SED= ${SUBST_SED.unwrap} + +_WRAP_BUILDCMD.LIBTOOL= ${WRAPPER_TMPDIR}/buildcmd-libtool +_WRAP_CACHE.LIBTOOL= ${WRAPPER_TMPDIR}/cache-libtool +_WRAP_CACHE_BODY.LIBTOOL= ${WRAPPER_TMPDIR}/cache-body-libtool +_WRAP_CLEANUP.LIBTOOL= ${WRAPPER_TMPDIR}/cleanup-libtool +_WRAP_CMD_SINK.LIBTOOL= ${WRAPPER_TMPDIR}/cmd-sink-libtool +_WRAP_SCAN.LIBTOOL= ${WRAPPER_TMPDIR}/scan-libtool +_WRAP_TRANSFORM.LIBTOOL= ${WRAPPER_TMPDIR}/transform-libtool + +_WRAP_BUILDCMD.SHLIBTOOL= ${_WRAP_BUILDCMD.LIBTOOL} +_WRAP_CACHE.SHLIBTOOL= ${_WRAP_CACHE.LIBTOOL} +_WRAP_CACHE_BODY.SHLIBTOOL= ${_WRAP_CACHE_BODY.LIBTOOL} +_WRAP_CLEANUP.SHLIBTOOL= ${_WRAP_CLEANUP.LIBTOOL} +_WRAP_CMD_SINK.SHLIBTOOL= ${_WRAP_CMD_SINK.LIBTOOL} +_WRAP_SCAN.SHLIBTOOL= ${_WRAP_SCAN.LIBTOOL} +_WRAP_TRANSFORM.SHLIBTOOL= ${_WRAP_TRANSFORM.LIBTOOL} # Silently pass the appropriate flags to the compiler/linker commands so # that headers and libraries in ${BUILDLINK_DIR}/{include,lib} are found @@ -1237,539 +1051,78 @@ _BLNK_WRAP_LOGIC.IMAKE= ${_BLNK_WRAP_LOGIC} # _BLNK_CPPFLAGS= -I${BUILDLINK_DIR}/include _BLNK_LDFLAGS= -L${BUILDLINK_DIR}/lib -_BLNK_WRAP_EXTRA_FLAGS.CC= ${_BLNK_CPPFLAGS} ${_BLNK_LDFLAGS} -_BLNK_WRAP_EXTRA_FLAGS.CXX= ${_BLNK_CPPFLAGS} ${_BLNK_LDFLAGS} -_BLNK_WRAP_EXTRA_FLAGS.CPP= ${_BLNK_CPPFLAGS} -_BLNK_WRAP_EXTRA_FLAGS.FC= ${_BLNK_CPPFLAGS} ${_BLNK_LDFLAGS} -_BLNK_WRAP_EXTRA_FLAGS.LD= ${_BLNK_LDFLAGS} -_BLNK_WRAP_EXTRA_FLAGS.LIBTOOL= ${_BLNK_LDFLAGS} -_BLNK_WRAP_EXTRA_FLAGS.SHLIBTOOL= ${_BLNK_WRAP_EXTRA_FLAGS.LIBTOOL} - -.PHONY: buildlink-wrappers - -buildlink-wrappers: ${_BLNK_LIBTOOL_FIX_LA} - -.for _wrappee_ in ${_BLNK_WRAPPEES} -. if defined(PKG_${_wrappee_}) -_BLNK_PKG_${_wrappee_}= ${PKG_${_wrappee_}} -. else -_BLNK_PKG_${_wrappee_}= ${${_wrappee_}} -. endif - -BUILDLINK_${_wrappee_}= \ - ${BUILDLINK_DIR}/bin/${_BLNK_PKG_${_wrappee_}:T:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//} -${_wrappee_}:= ${BUILDLINK_${_wrappee_}:T} - -# Filter to scrunch shell scripts by removing comments and empty lines. -_BLNK_SH_CRUNCH_FILTER= \ - ${GREP} -v "^\#[^!]" | ${GREP} -v "^[ ][ ]*\#" | \ - ${GREP} -v "^\#$$" | ${GREP} -v "^[ ]*$$" - -_BLNK_WRAPPER_TRANSFORM_SED.${_wrappee_}= \ - -e "s|@BUILDLINK_DIR@|${BUILDLINK_DIR}|g" \ - -e "s|@BUILDLINK_SHELL@|${BUILDLINK_SHELL}|g" \ - -e "s|@WRKDIR@|${WRKDIR}|g" \ - -e "s|@WRKSRC@|${WRKSRC}|g" \ - -e "s|@BASENAME@|${BASENAME:Q}|g" \ - -e "s|@CAT@|${CAT:Q}|g" \ - -e "s|@DIRNAME@|${DIRNAME:Q}|g" \ - -e "s|@ECHO@|${ECHO:Q}|g" \ - -e "s|@EXPR@|${EXPR:Q}|g" \ - -e "s|@PWD_CMD@|${PWD_CMD:Q}|g" \ - -e "s|@SED@|${SED:Q}|g" \ - -e "s|@TEST@|${TEST:Q}|g" \ - -e "s|@TOUCH@|${TOUCH:Q}|g" \ - -e "s|@_BLNK_LIBTOOL_FIX_LA@|${_BLNK_LIBTOOL_FIX_LA:Q}|g" \ - -e "s|@_BLNK_REORDERLIBS@|${_BLNK_REORDERLIBS:Q}|g" \ - -e "s|@_BLNK_WRAP_LOG@|${_BLNK_WRAP_LOG:Q}|g" \ - -e "s|@_BLNK_WRAP_EXTRA_FLAGS@|${_BLNK_WRAP_EXTRA_FLAGS.${_wrappee_}:Q}|g" \ - -e "s|@_BLNK_WRAP_BUILDCMD@|${_BLNK_WRAP_BUILDCMD.${_wrappee_}:Q}|g" \ - -e "s|@_BLNK_WRAP_QUOTEARG@|${_BLNK_WRAP_QUOTEARG.${_wrappee_}:Q}|g" \ - -e "s|@_BLNK_WRAP_BUFFER@|${_BLNK_WRAP_BUFFER.${_wrappee_}:Q}|g" \ - -e "s|@_BLNK_WRAP_MARSHALL@|${_BLNK_WRAP_MARSHALL.${_wrappee_}:Q}|g" \ - -e "s|@_BLNK_WRAP_PRIVATE_PRE_CACHE@|${_BLNK_WRAP_PRIVATE_PRE_CACHE.${_wrappee_}:Q}|g" \ - -e "s|@_BLNK_WRAP_PRIVATE_CACHE_ADD@|${_BLNK_WRAP_PRIVATE_CACHE_ADD.${_wrappee_}:Q}|g" \ - -e "s|@_BLNK_WRAP_PRIVATE_CACHE@|${_BLNK_WRAP_PRIVATE_CACHE.${_wrappee_}:Q}|g" \ - -e "s|@_BLNK_WRAP_PRIVATE_POST_CACHE@|${_BLNK_WRAP_PRIVATE_POST_CACHE.${_wrappee_}:Q}|g" \ - -e "s|@_BLNK_WRAP_PRE_CACHE@|${_BLNK_WRAP_PRE_CACHE:Q}|g" \ - -e "s|@_BLNK_WRAP_CACHE_ADD@|${_BLNK_WRAP_CACHE_ADD.${_wrappee_}:Q}|g" \ - -e "s|@_BLNK_WRAP_CACHE@|${_BLNK_WRAP_CACHE.${_wrappee_}:Q}|g" \ - -e "s|@_BLNK_WRAP_POST_CACHE@|${_BLNK_WRAP_POST_CACHE:Q}|g" \ - -e "s|@_BLNK_WRAP_LOGIC@|${_BLNK_WRAP_LOGIC.${_wrappee_}:Q}|g" \ - -e "s|@_BLNK_WRAP_POST_LOGIC@|${_BLNK_WRAP_POST_LOGIC.${_wrappee_}:Q}|g" \ - -e "s|@_BLNK_WRAP_ENV@|${_BLNK_WRAP_ENV.${_wrappee_}:Q}|g" \ - -e "s|@_BLNK_WRAP_SANITIZE_PATH@|${_BLNK_WRAP_SANITIZE_PATH.${_wrappee_}:Q}|g" - -_BLNK_WRAPPEE_COOKIE.${_wrappee_}= \ - ${BUILDLINK_DIR}/.buildlink_wrapper_${_wrappee_}_done - -buildlink-wrappers: ${_BLNK_WRAPPEE_COOKIE.${_wrappee_}} -${_BLNK_WRAPPEE_COOKIE.${_wrappee_}}: \ - ${_BLNK_WRAPPER_SH.${_wrappee_}} \ - ${_BLNK_WRAP_BUILDCMD.${_wrappee_}} \ - ${_BLNK_WRAP_QUOTEARG.${_wrappee_}} \ - ${_BLNK_WRAP_BUFFER.${_wrappee_}} \ - ${_BLNK_WRAP_MARSHALL.${_wrappee_}} \ - ${_BLNK_WRAP_PRIVATE_CACHE.${_wrappee_}} \ - ${_BLNK_WRAP_CACHE.${_wrappee_}} \ - ${_BLNK_WRAP_LOGIC.${_wrappee_}} \ - ${_BLNK_WRAP_POST_LOGIC.${_wrappee_}} - ${_PKG_SILENT}${_PKG_DEBUG}${ECHO_BUILDLINK_MSG} \ - "=> Creating wrapper: ${BUILDLINK_${_wrappee_}}" - ${_PKG_SILENT}${_PKG_DEBUG} \ - wrappee="${_BLNK_PKG_${_wrappee_}:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//}"; \ - gen=yes; \ - case $${wrappee} in \ - /*) absdir=; \ - ;; \ - *) OLDIFS="$$IFS"; \ - IFS=":"; \ - for dir in $${PATH}; do \ - case $${dir} in \ - *${BUILDLINK_DIR}*) \ - ;; \ - *) if [ -f $${dir}/$${wrappee} ] || \ - [ -h $${dir}/$${wrappee} ] && \ - [ -x $${dir}/$${wrappee} ]; then \ - absdir=$${dir}/; \ - wrappee=$${absdir}$${wrappee}; \ - break; \ - fi; \ - ;; \ - esac; \ - done; \ - IFS="$$OLDIFS"; \ - if [ ! -x "$${wrappee}" ]; then \ - gen=no; \ - ${ECHO_BUILDLINK_MSG} "Warning: unable to create \"$${wrappee}\" wrapper script"; \ - fi; \ - ;; \ - esac; \ - case $$gen in \ - yes) \ - ${MKDIR} ${BUILDLINK_${_wrappee_}:H}; \ - ${CAT} ${_BLNK_WRAPPER_SH.${_wrappee_}} | \ - ${SED} ${_BLNK_WRAPPER_TRANSFORM_SED.${_wrappee_}} \ - -e "s|@WRAPPEE@|$${absdir}${_BLNK_PKG_${_wrappee_}:Q}|g" | \ - ${_BLNK_SH_CRUNCH_FILTER} \ - > ${BUILDLINK_${_wrappee_}}; \ - ${CHMOD} +x ${BUILDLINK_${_wrappee_}}; \ - ;; \ - esac -. for _alias_ in ${_ALIASES.${_wrappee_}:S/^/${BUILDLINK_DIR}\/bin\//} - ${_PKG_SILENT}${_PKG_DEBUG} \ - if [ ! -x ${_alias_} -a -x ${BUILDLINK_${_wrappee_}} ]; then \ - ${ECHO_BUILDLINK_MSG} "=> Linking wrapper: ${_alias_}"; \ - ${LN} -f ${BUILDLINK_${_wrappee_}} ${_alias_}; \ - fi -. endfor - ${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_FLAGS} ${.TARGET} -.endfor # _wrappee_ - -# Allow BUILDLINK_ENV to override shell environment settings in -# ${CONFIGURE_ENV} and in ${MAKE_ENV} for the configure and build processes, -# respectively. -# -CONFIGURE_ENV+= ${BUILDLINK_ENV} -MAKE_ENV+= ${BUILDLINK_ENV} - -.PHONY: buildlink-${_BLNK_OPSYS}-wrappers -buildlink-${_BLNK_OPSYS}-wrappers: buildlink-wrappers -.for _wrappee_ in ${_BLNK_WRAPPEES.${_BLNK_OPSYS}} - ${_PKG_SILENT}${_PKG_DEBUG} \ - if [ -x "${${_wrappee_}.${_BLNK_OPSYS}}" ]; then \ - wrapper="${BUILDLINK_DIR}/bin/${${_wrappee_}.${_BLNK_OPSYS}:T}"; \ - ${ECHO_BUILDLINK_MSG} \ - "=> Creating ${_BLNK_OPSYS} wrapper: $${wrapper}"; \ - ${RM} -f $${wrapper}; \ - ${CAT} ${_BLNK_WRAPPER_SH.${_wrappee_}} | \ - ${SED} ${_BLNK_WRAPPER_TRANSFORM_SED.${_wrappee_}} \ - -e "s|@WRAPPEE@|${${_wrappee_}.${_BLNK_OPSYS}}|g" | \ - ${_BLNK_SH_CRUNCH_FILTER} \ - > $${wrapper}; \ - ${CHMOD} +x $${wrapper}; \ - for file in ${_ALIASES.${_wrappee_}:S/^/${BUILDLINK_DIR}\/bin\//}; do \ - if [ "$${file}" != "$${wrappee}" ]; then \ - ${TOUCH} $${file}; \ - fi; \ - done; \ - fi -.endfor - -.if !target(${_BLNK_EMPTY_FILE}) -${_BLNK_EMPTY_FILE}: - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_ARGS} ${.TARGET} -.endif - -.if !target(${_BLNK_WRAP_BUILDCMD}) -${_BLNK_WRAP_BUILDCMD}: ${.CURDIR}/../../mk/buildlink3/buildcmd +_WRAP_EXTRA_ARGS.CC+= ${_BLNK_CPPFLAGS} ${_BLNK_LDFLAGS} +_WRAP_EXTRA_ARGS.CXX+= ${_BLNK_CPPFLAGS} ${_BLNK_LDFLAGS} +_WRAP_EXTRA_ARGS.CPP+= ${_BLNK_CPPFLAGS} +_WRAP_EXTRA_ARGS.FC+= ${_BLNK_CPPFLAGS} ${_BLNK_LDFLAGS} +_WRAP_EXTRA_ARGS.LD+= ${_BLNK_LDFLAGS} +_BLNK_LIBTOOL_LDFLAGS= ${_BLNK_LDFLAGS} + +${WRAPPER_TMPDIR}/libtool-fix-la: ${BUILDLINK_SRCDIR}/libtool-fix-la ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} -.endif - -.if !target(${_BLNK_WRAP_QUOTEARG}) -${_BLNK_WRAP_QUOTEARG}: ${.CURDIR}/../../mk/buildlink3/quotearg - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} -.endif - -.if !target(${_BLNK_WRAP_BUFFER}) -${_BLNK_WRAP_BUFFER}: ${.CURDIR}/../../mk/buildlink3/buffer + | ${SED} -e "s|@_BLNK_WRAP_LT_UNTRANSFORM_SED@|${_BLNK_WRAP_LT_UNTRANSFORM_SED:Q}|g" \ + -e "s|@BUILDLINK_DIR@|${BUILDLINK_DIR:Q}|g" \ + -e "s|@DEPOTBASE@|${DEPOTBASE:Q}|g" \ + -e "s|@LOCALBASE@|${LOCALBASE:Q}|g" \ + -e "s|@WRKSRC@|${WRKSRC:Q}|g" \ + -e "s|@BASENAME@|${BASENAME:Q}|g" \ + -e "s|@DIRNAME@|${DIRNAME:Q}|g" \ + -e "s|@EGREP@|${EGREP:Q}|g" \ + -e "s|@MV@|${MV:Q}|g" \ + -e "s|@RM@|${RM:Q}|g" \ + | ${_WRAP_SH_CRUNCH_FILTER} > ${.TARGET} + +${WRAPPER_TMPDIR}/buildcmd-libtool: ${BUILDLINK_SRCDIR}/buildcmd-libtool ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} -.endif + | ${_WRAP_SH_CRUNCH_FILTER} > ${.TARGET} -.if !target(${_BLNK_WRAP_MARSHALL}) -${_BLNK_WRAP_MARSHALL}: ${.CURDIR}/../../mk/buildlink3/marshall +${WRAPPER_TMPDIR}/cleanup-libtool: \ + ${BUILDLINK_SRCDIR}/cleanup-libtool \ + ${_BLNK_LIBTOOL_FIX_LA} ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} -.endif - -.if !target(${_BLNK_WRAP_PRE_CACHE}) -${_BLNK_WRAP_PRE_CACHE}: ${.CURDIR}/../../mk/buildlink3/pre-cache - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} -.endif - -.if !target(${_BLNK_WRAP_CACHE_ADD}) -${_BLNK_WRAP_CACHE_ADD}: - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_ARGS} ${.TARGET} -.endif + ${_PKG_SILENT}${_PKG_DEBUG} \ + ${CAT} ${BUILDLINK_SRCDIR}/cleanup-libtool \ + | ${SED} -e "s|@_BLNK_LIBTOOL_FIX_LA@|${_BLNK_LIBTOOL_FIX_LA:Q}|g" \ + | ${_WRAP_SH_CRUNCH_FILTER} > ${.TARGET} -.if !target(${_BLNK_WRAP_CACHE}) -${_BLNK_WRAP_CACHE}: \ - ${_BLNK_WRAP_PRE_CACHE} \ - ${_BLNK_WRAP_CACHE_ADD} \ - ${_BLNK_WRAP_POST_CACHE} +${WRAPPER_TMPDIR}/cmd-sink-libtool: ${BUILDLINK_SRCDIR}/cmd-sink-libtool ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET}.tmp - ${_PKG_SILENT}${_PKG_DEBUG}${MV} -f ${.TARGET}.tmp ${.TARGET} -.endif + | ${_WRAP_SH_CRUNCH_FILTER} > ${.TARGET} -.if !target(${_BLNK_WRAP_CACHE_TRANSFORM}) -${_BLNK_WRAP_CACHE_TRANSFORM}: \ - ${_BLNK_WRAP_PRE_CACHE} \ - ${_BLNK_WRAP_CACHE_ADD_TRANSFORM} \ - ${_BLNK_WRAP_POST_CACHE} +${WRAPPER_TMPDIR}/scan-libtool: ${BUILDLINK_SRCDIR}/scan-libtool ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET}.tmp - ${_PKG_SILENT}${_PKG_DEBUG}${MV} -f ${.TARGET}.tmp ${.TARGET} -.endif + | ${SED} -e "s|@_BLNK_LIBTOOL_LDFLAGS@|${_BLNK_LIBTOOL_LDFLAGS:Q}|g" \ + | ${_WRAP_SH_CRUNCH_FILTER} > ${.TARGET} -.if !target(${_BLNK_WRAP_POST_CACHE}) -${_BLNK_WRAP_POST_CACHE}: ${.CURDIR}/../../mk/buildlink3/post-cache +${WRAPPER_TMPDIR}/transform-libtool: ${BUILDLINK_SRCDIR}/transform-libtool ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} + | ${SED} -e "s|@BUILDLINK_DIR@|${BUILDLINK_DIR:Q}|g" \ + -e "s|@WRKSRC@|${WRKSRC:Q}|g" \ + -e "s|@BASENAME@|${BASENAME:Q}|g" \ + -e "s|@DIRNAME@|${DIRNAME:Q}|g" \ + -e "s|@PWD@|${PWD_CMD:Q}|g" \ + | ${_WRAP_SH_CRUNCH_FILTER} > ${.TARGET} + +WRAPPER_TARGETS+= pre-buildlink do-buildlink post-buildlink +.if !target(pre-buildlink) +pre-buildlink: + @${DO_NADA} .endif - -${BUILDLINK_DIR}/bin/.mipspro-cc-post-cache: \ - ${.CURDIR}/../../mk/buildlink3/mipspro-cc-post-cache - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} - -${BUILDLINK_DIR}/bin/.mipspro-ucode-cc-post-cache: \ - ${.CURDIR}/../../mk/buildlink3/mipspro-ucode-cc-post-cache - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} - -${BUILDLINK_DIR}/bin/.sunpro-cc-post-cache: \ - ${.CURDIR}/../../mk/buildlink3/sunpro-cc-post-cache - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} - -${BUILDLINK_DIR}/bin/.ld-post-cache: \ - ${.CURDIR}/../../mk/buildlink3/ld-post-cache - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} - -${BUILDLINK_DIR}/bin/.libtool-post-cache: \ - ${.CURDIR}/../../mk/buildlink3/libtool-post-cache - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} - -.for _wrappee_ in ${_BLNK_WRAPPEES} -. if !target(${_BLNK_WRAP_PRIVATE_PRE_CACHE.${_wrappee_}}) -${_BLNK_WRAP_PRIVATE_PRE_CACHE.${_wrappee_}}: - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_ARGS} ${.TARGET} -. endif -. if !target(${_BLNK_WRAP_PRIVATE_CACHE_ADD.${_wrappee_}}) -${_BLNK_WRAP_PRIVATE_CACHE_ADD.${_wrappee_}}: - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_ARGS} ${.TARGET} -. endif -. if !target(${_BLNK_WRAP_PRIVATE_POST_CACHE.${_wrappee_}}) -${_BLNK_WRAP_PRIVATE_POST_CACHE.${_wrappee_}}: - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_ARGS} ${.TARGET} -. endif -. if !target(${_BLNK_WRAP_PRIVATE_CACHE.${_wrappee_}}) -${_BLNK_WRAP_PRIVATE_CACHE.${_wrappee_}}: \ - ${_BLNK_WRAP_PRIVATE_PRE_CACHE.${_wrappee_}} \ - ${_BLNK_WRAP_PRIVATE_CACHE_ADD.${_wrappee_}} \ - ${_BLNK_WRAP_PRIVATE_POST_CACHE.${_wrappee_}} - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET}.tmp - ${_PKG_SILENT}${_PKG_DEBUG}${MV} -f ${.TARGET}.tmp ${.TARGET} -. endif -.endfor - -.if !target(${_BLNK_WRAP_LOGIC}) -${_BLNK_WRAP_LOGIC}: ${.CURDIR}/../../mk/buildlink3/logic - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${SED} \ - -e "s|@LOCALBASE@|${LOCALBASE}|g" \ - -e "s|@X11BASE@|${X11BASE}|g" \ - -e 's|@_BLNK_TRANSFORM_SED@||g' \ - ${.ALLSRC} | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET}.tmp - ${_PKG_SILENT}${_PKG_DEBUG}${MV} -f ${.TARGET}.tmp ${.TARGET} +.if !target(do-buildlink) +do-buildlink: + @${DO_NADA} .endif - -.if !target(${_BLNK_WRAP_LOGIC_TRANSFORM}) -${_BLNK_WRAP_LOGIC_TRANSFORM}: \ - ${.CURDIR}/../../mk/buildlink3/logic \ - ${_BLNK_TRANSFORM_SEDFILE} - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${SED} \ - -e "s|@LOCALBASE@|${LOCALBASE}|g" \ - -e "s|@X11BASE@|${X11BASE}|g" \ - -e 's|@_BLNK_TRANSFORM_SED@|${_BLNK_TRANSFORM_SED:Q}|g' \ - ${.CURDIR}/../../mk/buildlink3/logic \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET}.tmp - ${_PKG_SILENT}${_PKG_DEBUG}${MV} -f ${.TARGET}.tmp ${.TARGET} +.if !target(post-buildlink) +post-buildlink: + @${DO_NADA} .endif -${BUILDLINK_DIR}/bin/.mipspro-cc-post-logic: \ - ${.CURDIR}/../../mk/buildlink3/mipspro-cc-post-logic - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} - -${BUILDLINK_DIR}/bin/.mipspro-ucode-cc-post-logic: \ - ${.CURDIR}/../../mk/buildlink3/mipspro-ucode-cc-post-logic - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} - -${BUILDLINK_DIR}/bin/.sunpro-cc-post-logic: \ - ${.CURDIR}/../../mk/buildlink3/sunpro-cc-post-logic - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} - -${BUILDLINK_DIR}/bin/.ld-post-logic: \ - ${.CURDIR}/../../mk/buildlink3/ld-post-logic - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} - -${BUILDLINK_DIR}/bin/.libtool-post-logic: \ - ${.CURDIR}/../../mk/buildlink3/libtool-post-logic - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET} - -.for _wrappee_ in ${_BLNK_WRAPPEES} -. if !target(${_BLNK_WRAP_PRIVATE_POST_LOGIC.${_wrappee_}}) -${_BLNK_WRAP_PRIVATE_POST_LOGIC.${_wrappee_}}: - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_ARGS} ${.TARGET} -. endif -.endfor - -${BUILDLINK_DIR}/bin/.libtool-fix-la: \ - ${.CURDIR}/../../mk/buildlink3/libtool-fix-la \ - ${_BLNK_UNTRANSFORM_SEDFILE} - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${SED} \ - -e "s|@LOCALBASE@|${LOCALBASE}|g" \ - -e "s|@DEPOTBASE@|${DEPOTBASE}|g" \ - -e "s|@WRKSRC@|${WRKSRC}|g" \ - -e "s|@BASENAME@|${BASENAME:Q}|g" \ - -e "s|@CP@|${CP:Q}|g" \ - -e "s|@DIRNAME@|${DIRNAME:Q}|g" \ - -e "s|@EGREP@|${EGREP:Q}|g" \ - -e "s|@MV@|${MV:Q}|g" \ - -e "s|@RM@|${RM:Q}|g" \ - -e "s|@SED@|${SED:Q}|g" \ - -e "s|@TOUCH@|${TOUCH:Q}|g" \ - -e 's|@_BLNK_WRAP_LT_UNTRANSFORM_SED@|${_BLNK_WRAP_LT_UNTRANSFORM_SED:Q}|g' \ - ${.CURDIR}/../../mk/buildlink3/libtool-fix-la \ - | ${_BLNK_SH_CRUNCH_FILTER} > ${.TARGET}.tmp - ${_PKG_SILENT}${_PKG_DEBUG}${MV} -f ${.TARGET}.tmp ${.TARGET} - -# Seed the common transforming cache with obvious values that greatly -# speed up the wrappers. -# -_BLNK_RPATH_FLAGS= # empty -.for _rflag_ in \ - -Wl,-R -Wl,-rpath, -Wl,--rpath, -Wl,-rpath-link, -Wl,--rpath-link -. if empty(_BLNK_RPATH_FLAGS:M${_rflag_}) -_BLNK_RPATH_FLAGS+= ${_rflag_} -. endif -.endfor -# -.if !empty(_BLNK_SEED_CACHE:Mpassthru) -# -# Pass through all single letter options, because we don't touch those. -# -_BLNK_CACHE_PASSTHRU_GLOB= -? -# -# Directories in the ${WRKDIR} should all be allowed in -[IL]<dir> -_BLNK_CACHE_PASSTHRU_GLOB+= -[IL]${WRKDIR}*|-[IL]${BUILDLINK_DIR}* -# -# Directories relative to the srcdir should be allowed in -[IL]<dir> -_BLNK_CACHE_PASSTHRU_GLOB+= -[IL].|-[IL]./*|-[IL]..*|-[IL][!/]* -# -# Allow the depot directories for packages for which we need to find -# headers and libraries for both -[IL]<dir>. -# -. if ${PKG_INSTALLATION_TYPE} == "pkgviews" -. for _pkg_ in ${_BLNK_PACKAGES} -. if !empty(BUILDLINK_IS_DEPOT.${_pkg_}:M[yY][eE][sS]) -_BLNK_CACHE_PASSTHRU_GLOB+= -[IL]${BUILDLINK_PREFIX.${_pkg_}}/* -. endif -. endfor -. endif -# -# Allow all subdirs of ${_BLNK_PASSTHRU_DIRS} and ${_BLNK_PASSTHRU_RPATHDIRS} -# to be in the runtime library search path. -# -. if ${_USE_RPATH} == "yes" -. for _dir_ in ${_BLNK_PASSTHRU_DIRS} ${_BLNK_PASSTHRU_RPATHDIRS} -. for _R_ in ${_BLNK_RPATH_FLAGS} -_BLNK_CACHE_PASSTHRU_GLOB+= ${_R_}${_dir_}|${_R_}${_dir_}/* -. endfor -. endfor -. endif -.endif # _BLNK_SEED_CACHE has "passthru" - -.if !empty(_BLNK_SEED_CACHE:Mblock) -# -# Block all other absolute paths (we handle the ${X11BASE} case below). -# -_BLNK_CACHE_BLOCK_GLOB= -[IL]/* -. if ${_USE_RPATH} == "yes" -. for _R_ in ${_BLNK_RPATH_FLAGS} -_BLNK_CACHE_BLOCK_GLOB:= ${_BLNK_CACHE_BLOCK_GLOB}|${_R_}/* -. endfor -. endif -.endif # _BLNK_SEED_CACHE has "block" - -${_BLNK_WRAP_CACHE_ADD_TRANSFORM}: - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${RM} -f ${.TARGET} - ${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${.TARGET} -.if !empty(_BLNK_SEED_CACHE) -. if !empty(_BLNK_SEED_CACHE:Mpassthru) -. for _glob_ in ${_BLNK_CACHE_PASSTHRU_GLOB} - ${_PKG_SILENT}${_PKG_DEBUG} \ - ( ${ECHO} "${_glob_})"; \ - ${ECHO} " cachehit=yes"; \ - ${ECHO} " ;;"; \ - ) >> ${.TARGET} -. endfor -. endif # _BLNK_SEED_CACHE has "passthru" -. if !empty(_BLNK_SEED_CACHE:Mtransform) -. if ${PKG_INSTALLATION_TYPE} == "overwrite" - ${_PKG_SILENT}${_PKG_DEBUG} \ - ( ${ECHO} "-I${DEPOTBASE}/*)"; \ - ${ECHO} " arg=\"-I${BUILDLINK_DIR}/\$${arg#-I${DEPOTBASE}/[!/]*/}\""; \ - ${ECHO} " cachehit=yes"; \ - ${ECHO} " ;;"; \ - ) >> ${.TARGET} - ${_PKG_SILENT}${_PKG_DEBUG} \ - ( ${ECHO} "-L${DEPOTBASE}/*)"; \ - ${ECHO} " arg=\"-L${BUILDLINK_DIR}/\$${arg#-I${DEPOTBASE}/[!/]*/}\""; \ - ${ECHO} " cachehit=yes"; \ - ${ECHO} " ;;"; \ - ) >> ${.TARGET} - ${_PKG_SILENT}${_PKG_DEBUG} \ - ( ${ECHO} "-I${LOCALBASE}/*)"; \ - ${ECHO} " arg=\"-I${BUILDLINK_DIR}/\$${arg#-I${LOCALBASE}/}\""; \ - ${ECHO} " cachehit=yes"; \ - ${ECHO} " ;;"; \ - ) >> ${.TARGET} - ${_PKG_SILENT}${_PKG_DEBUG} \ - ( ${ECHO} "-L${LOCALBASE}/*)"; \ - ${ECHO} " arg=\"-L${BUILDLINK_DIR}/\$${arg#-L${LOCALBASE}/}\""; \ - ${ECHO} " cachehit=yes"; \ - ${ECHO} " ;;"; \ - ) >> ${.TARGET} -. endif -. if defined(USE_X11) - ${_PKG_SILENT}${_PKG_DEBUG} \ - ( ${ECHO} "-I${X11BASE}/*)"; \ - ${ECHO} " arg=\"-I${BUILDLINK_X11_DIR}/\$${arg#-I${X11BASE}/}\""; \ - ${ECHO} " cachehit=yes"; \ - ${ECHO} " ;;"; \ - ) >> ${.TARGET} - ${_PKG_SILENT}${_PKG_DEBUG} \ - ( ${ECHO} "-L${X11BASE}/*)"; \ - ${ECHO} " arg=\"-L${BUILDLINK_X11_DIR}/\$${arg#-L${X11BASE}/}\""; \ - ${ECHO} " cachehit=yes"; \ - ${ECHO} " ;;"; \ - ) >> ${.TARGET} -. endif -. endif # _BLNK_SEED_CACHE has "transform" -. if !empty(_BLNK_SEED_CACHE:Mblock) -. for _glob_ in ${_BLNK_CACHE_BLOCK_GLOB} - ${_PKG_SILENT}${_PKG_DEBUG} \ - ( ${ECHO} "${_glob_})"; \ - ${ECHO} " arg=; cachehit=yes;"; \ - ${ECHO} " ;;"; \ - ) >> ${.TARGET} -. endfor -. endif # _BLNK_SEED_CACHE has "block" -.endif # _BLNK_SEED_CACHE - -${_BLNK_GEN_TRANSFORM}: ${.CURDIR}/../../mk/buildlink3/gen-transform.sh - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${SED} \ - -e "s|@_BLNK_TRANSFORM_SEDFILE@|${_BLNK_TRANSFORM_SEDFILE:Q}|g" \ - -e "s|@_BLNK_UNTRANSFORM_SEDFILE@|${_BLNK_UNTRANSFORM_SEDFILE:Q}|g" \ - -e "s|@_BLNK_REORDERLIBS@|${_BLNK_REORDERLIBS:Q}|g" \ - -e "s|@BUILDLINK_SHELL@|${BUILDLINK_SHELL:Q}|g" \ - -e "s|@CAT@|${CAT:Q}|g" \ - ${.ALLSRC} > ${.TARGET}.tmp - ${_PKG_SILENT}${_PKG_DEBUG}${CHMOD} +x ${.TARGET}.tmp - ${_PKG_SILENT}${_PKG_DEBUG}${MV} -f ${.TARGET}.tmp ${.TARGET} - -${_BLNK_TRANSFORM_SEDFILE} ${_BLNK_UNTRANSFORM_SEDFILE} ${_BLNK_REORDERLIBS}: \ - ${_BLNK_GEN_TRANSFORM} - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${_BLNK_GEN_TRANSFORM} \ - ${_BLNK_TRANSFORM} -.endif # BUILDLINK_PHASES - -.PHONY: buildlink-vars-mk -buildlink-vars-mk: ${_BLNK_VARS_MK} -${_BLNK_VARS_MK}: - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} - ${_PKG_SILENT}${_PKG_DEBUG}${RM} -f ${.TARGET}.tmp -.for _var_ in ${BUILDLINK_VARS} - ${_PKG_SILENT}${_PKG_DEBUG} \ - ${ECHO} "${_var_}= ${${_var_}}" >> ${.TARGET}.tmp -.endfor - ${_PKG_SILENT}${_PKG_DEBUG} \ - if [ -f ${.TARGET}.tmp ]; then \ - ${SORT} -u ${.TARGET}.tmp > ${.TARGET}; \ - ${RM} -f ${.TARGET}.tmp; \ - fi - ${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_FLAGS} ${.TARGET} +.endif # PHASES_AFTER_WRAPPER +### +### END: after "wrapper" phase +### |