summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjlam <jlam>2004-09-08 10:22:01 +0000
committerjlam <jlam>2004-09-08 10:22:01 +0000
commit1d26c88cb10d4cbf565dcb8974136ee1c542e7f6 (patch)
tree7f538064e8d597b12ef9b7d5f4db3bc4b5596bbb
parent1892fa6ad7d58f67254ec8b80433485469f543f9 (diff)
downloadpkgsrc-1d26c88cb10d4cbf565dcb8974136ee1c542e7f6.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.
-rw-r--r--lang/gcc3-c++/PLIST7
-rw-r--r--lang/gcc3-f77/PLIST6
-rw-r--r--lang/gcc3-java/PLIST14
-rw-r--r--lang/gcc3-objc/PLIST6
-rw-r--r--lang/gcc3/language.mk22
5 files changed, 25 insertions, 30 deletions
diff --git a/lang/gcc3-c++/PLIST b/lang/gcc3-c++/PLIST
index db1fed7833a..327504974e4 100644
--- a/lang/gcc3-c++/PLIST
+++ b/lang/gcc3-c++/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.4 2004/07/02 15:40:01 drochner Exp $
+@comment $NetBSD: PLIST,v 1.5 2004/09/08 10:22:01 jlam Exp $
${GCC_SUBPREFIX}/bin/c++
${GCC_SUBPREFIX}/bin/g++
${GCC_SUBPREFIX}/bin/${GCC_PLATFORM}-c++
@@ -190,12 +190,7 @@ ${GCC_SUBPREFIX}/include/c++/${PKGVERSION}/utility
${GCC_SUBPREFIX}/include/c++/${PKGVERSION}/valarray
${GCC_SUBPREFIX}/include/c++/${PKGVERSION}/vector
${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/cc1plus
-${GCC_SUBPREFIX}/lib/libstdc++.a
${GCC_SUBPREFIX}/lib/libstdc++.la
-${GCC_SUBPREFIX}/lib/libstdc++.so
-${GCC_SUBPREFIX}/lib/libstdc++.so.5
-${GCC_SUBPREFIX}/lib/libstdc++.so.5.6
-${GCC_SUBPREFIX}/lib/libsupc++.a
${GCC_SUBPREFIX}/lib/libsupc++.la
${GCC_SUBPREFIX}/man/man1/g++.1
${GCC_SUBPREFIX}/mk/c++.mk
diff --git a/lang/gcc3-f77/PLIST b/lang/gcc3-f77/PLIST
index 1da9b6fdcc0..04ac3cb85c4 100644
--- a/lang/gcc3-f77/PLIST
+++ b/lang/gcc3-f77/PLIST
@@ -1,13 +1,9 @@
-@comment $NetBSD: PLIST,v 1.3 2003/07/08 16:07:04 drochner Exp $
+@comment $NetBSD: PLIST,v 1.4 2004/09/08 10:22:01 jlam Exp $
${GCC_SUBPREFIX}/bin/g77
${GCC_SUBPREFIX}/info/g77.info
${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/f771
${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/include/g2c.h
${GCC_SUBPREFIX}/lib/libfrtbegin.a
-${GCC_SUBPREFIX}/lib/libg2c.a
${GCC_SUBPREFIX}/lib/libg2c.la
-${GCC_SUBPREFIX}/lib/libg2c.so
-${GCC_SUBPREFIX}/lib/libg2c.so.0
-${GCC_SUBPREFIX}/lib/libg2c.so.0.0
${GCC_SUBPREFIX}/man/man1/g77.1
${GCC_SUBPREFIX}/mk/f77.mk
diff --git a/lang/gcc3-java/PLIST b/lang/gcc3-java/PLIST
index 2e19e5e85d0..df083020fe1 100644
--- a/lang/gcc3-java/PLIST
+++ b/lang/gcc3-java/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.3 2003/07/08 16:07:04 drochner Exp $
+@comment $NetBSD: PLIST,v 1.4 2004/09/08 10:22:01 jlam Exp $
${GCC_SUBPREFIX}/bin/addr2name.awk
${GCC_SUBPREFIX}/bin/gcj
${GCC_SUBPREFIX}/bin/gcjh
@@ -1688,21 +1688,9 @@ ${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/gcjh
${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/include/gcj/libgcj-config.h
${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/jc1
${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/jvgenmain
-${GCC_SUBPREFIX}/lib/lib-org-w3c-dom.a
${GCC_SUBPREFIX}/lib/lib-org-w3c-dom.la
-${GCC_SUBPREFIX}/lib/lib-org-w3c-dom.so
-${GCC_SUBPREFIX}/lib/lib-org-w3c-dom.so.0
-${GCC_SUBPREFIX}/lib/lib-org-w3c-dom.so.0.0
-${GCC_SUBPREFIX}/lib/lib-org-xml-sax.a
${GCC_SUBPREFIX}/lib/lib-org-xml-sax.la
-${GCC_SUBPREFIX}/lib/lib-org-xml-sax.so
-${GCC_SUBPREFIX}/lib/lib-org-xml-sax.so.0
-${GCC_SUBPREFIX}/lib/lib-org-xml-sax.so.0.0
-${GCC_SUBPREFIX}/lib/libgcj.a
${GCC_SUBPREFIX}/lib/libgcj.la
-${GCC_SUBPREFIX}/lib/libgcj.so
-${GCC_SUBPREFIX}/lib/libgcj.so.4
-${GCC_SUBPREFIX}/lib/libgcj.so.4.0
${GCC_SUBPREFIX}/lib/libgcj.spec
${GCC_SUBPREFIX}/lib/security/classpath.security
${GCC_SUBPREFIX}/lib/security/libgcj.security
diff --git a/lang/gcc3-objc/PLIST b/lang/gcc3-objc/PLIST
index 06c4d6a7bb5..5b1d3d8a9b1 100644
--- a/lang/gcc3-objc/PLIST
+++ b/lang/gcc3-objc/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.2 2003/07/08 15:05:03 drochner Exp $
+@comment $NetBSD: PLIST,v 1.3 2004/09/08 10:22:01 jlam Exp $
${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/cc1obj
${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/include/objc/NXConstStr.h
${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/include/objc/Object.h
@@ -11,9 +11,5 @@ ${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/include/objc/objc.h
${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/include/objc/sarray.h
${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/include/objc/thr.h
${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/include/objc/typedstream.h
-${GCC_SUBPREFIX}/lib/libobjc.a
${GCC_SUBPREFIX}/lib/libobjc.la
-${GCC_SUBPREFIX}/lib/libobjc.so
-${GCC_SUBPREFIX}/lib/libobjc.so.1
-${GCC_SUBPREFIX}/lib/libobjc.so.1.0
@dirrm ${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${PKGVERSION}/include/objc
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"