summaryrefslogtreecommitdiff
path: root/lang/gcc3
diff options
context:
space:
mode:
authorjlam <jlam@pkgsrc.org>2004-09-08 10:22:01 +0000
committerjlam <jlam@pkgsrc.org>2004-09-08 10:22:01 +0000
commit13760a9c4a5dc252b9e5c12ba2fb759ea42cd7c2 (patch)
tree7f538064e8d597b12ef9b7d5f4db3bc4b5596bbb /lang/gcc3
parent18de3fd8990b3b540a45f6bba5a56100e3f98a4d (diff)
downloadpkgsrc-13760a9c4a5dc252b9e5c12ba2fb759ea42cd7c2.tar.gz
GCC generates and uses its own libtool to build shared libraries, and
the resulting shared library names don't necessarily match the NetBSD names. Instead of hardcoding the shared library names in the PLISTs, only list the libtool archives in the PLISTs and dynamically determine the shared library names at post-install time and insert them into the PLIST. This fixes PLIST errors on non-NetBSD platforms. All of the magic is done in pkgsrc/lang/gcc3/language.mk. This should probably be generalized into something that could be used by all packages that use libtool.
Diffstat (limited to 'lang/gcc3')
-rw-r--r--lang/gcc3/language.mk22
1 files changed, 21 insertions, 1 deletions
diff --git a/lang/gcc3/language.mk b/lang/gcc3/language.mk
index 1a124272fff..3b86a64b132 100644
--- a/lang/gcc3/language.mk
+++ b/lang/gcc3/language.mk
@@ -1,4 +1,4 @@
-# $NetBSD: language.mk,v 1.1 2004/04/10 15:47:08 seb Exp $
+# $NetBSD: language.mk,v 1.2 2004/09/08 10:22:01 jlam Exp $
BUILDLINK_DEPENDS.gcc3-c+= gcc3${GCC3_PKGMODIF}-c-${GCC_VERSION}{,nb*}
BUILDLINK_DEPMETHOD.gcc3-c+= full
@@ -11,4 +11,24 @@ pre-build:
${LN} -s ${GCC_PREFIX}/lib/libiberty.a ${WRKSRC}/libiberty
${LN} -s ${GCC_PREFIX}/bin/gcc ${WRKSRC}/gcc/xgcc
+.if exists(${PKGDIR}/PLIST)
+GCC_PLIST_AWK_SCRIPT= '
+GCC_PLIST_AWK_SCRIPT+= ${_PLIST_AWK_SUBST}
+GCC_PLIST_AWK_SCRIPT+= \
+ /\.la$$/ { \
+ lafile = "${PREFIX}/" $$0; \
+ dir = $$0; \
+ sub("/[^/]*\.la$$", "", dir); \
+ system("( . " lafile "; for lib in $$library_names $$old_library; do ${ECHO} " dir "/$$lib; done; ${ECHO} " $$0 " ) | ${SORT} -u"); \
+ next; \
+ }
+GCC_PLIST_AWK_SCRIPT+= { print $$0; }
+GCC_PLIST_AWK_SCRIPT+= '
+PLIST_SRC= ${WRKDIR}/.PLIST_SRC
+
+post-install: gcc-plist
+gcc-plist:
+ @${CAT} ${PKGDIR}/PLIST | ${AWK} ${GCC_PLIST_AWK_SCRIPT} > ${PLIST_SRC}
+.endif
+
.include "../../lang/gcc3-c/buildlink3.mk"