Sun Feb 10 12:07:50 2013 UTC ()
Add REQUIRE/PROVIDER metadata detection support for OBJECT_FMT=PE (Cygwin).


(obache)
diff -r1.3 -r1.4 pkgsrc/mk/pkgformat/pkg/metadata.mk

cvs diff -r1.3 -r1.4 pkgsrc/mk/pkgformat/pkg/metadata.mk (expand / switch to unified diff)

--- pkgsrc/mk/pkgformat/pkg/metadata.mk 2012/05/13 08:20:11 1.3
+++ pkgsrc/mk/pkgformat/pkg/metadata.mk 2013/02/10 12:07:50 1.4
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: metadata.mk,v 1.3 2012/05/13 08:20:11 obache Exp $ 1# $NetBSD: metadata.mk,v 1.4 2013/02/10 12:07:50 obache Exp $
2 2
3###################################################################### 3######################################################################
4### The targets below are all PRIVATE. 4### The targets below are all PRIVATE.
5###################################################################### 5######################################################################
6 6
7###################################################################### 7######################################################################
8### 8###
9### Temporary package meta-data directory. The contents of this directory 9### Temporary package meta-data directory. The contents of this directory
10### are copied directly into the real package meta-data directory. 10### are copied directly into the real package meta-data directory.
11### 11###
12PKG_DB_TMPDIR= ${WRKDIR}/.pkgdb 12PKG_DB_TMPDIR= ${WRKDIR}/.pkgdb
13 13
14unprivileged-install-hook: ${PKG_DB_TMPDIR} 14unprivileged-install-hook: ${PKG_DB_TMPDIR}
@@ -73,26 +73,40 @@ ${_BUILD_INFO_FILE}: plist @@ -73,26 +73,40 @@ ${_BUILD_INFO_FILE}: plist
73 if ${TEST} -r $$i -a ! -x $$i -a ! -h $$i; then \ 73 if ${TEST} -r $$i -a ! -x $$i -a ! -h $$i; then \
74 ${TEST} ${PKG_DEVELOPER:Uno:Q}"" = "no" || \ 74 ${TEST} ${PKG_DEVELOPER:Uno:Q}"" = "no" || \
75 ${ECHO} "$$i: installed without execute permission; fixing (should use [BSD_]INSTALL_LIB)"; \ 75 ${ECHO} "$$i: installed without execute permission; fixing (should use [BSD_]INSTALL_LIB)"; \
76 ${CHMOD} +x $$i; \ 76 ${CHMOD} +x $$i; \
77 fi; \ 77 fi; \
78 done; \ 78 done; \
79 ;; \ 79 ;; \
80 Mach-O) \ 80 Mach-O) \
81 libs=`${AWK} '/\/lib.*\.dylib/ { print "${DESTDIR}${PREFIX}/" $$0 } END { exit 0 }' ${_PLIST_NOKEYWORDS}`; \ 81 libs=`${AWK} '/\/lib.*\.dylib/ { print "${DESTDIR}${PREFIX}/" $$0 } END { exit 0 }' ${_PLIST_NOKEYWORDS}`; \
82 if ${TEST} "$$bins" != "" -o "$$libs" != ""; then \ 82 if ${TEST} "$$bins" != "" -o "$$libs" != ""; then \
83 requires=`($$ldd $$bins $$libs 2>/dev/null || ${TRUE}) | ${AWK} '/compatibility version/ { print $$1 }' | ${SORT} -u`; \ 83 requires=`($$ldd $$bins $$libs 2>/dev/null || ${TRUE}) | ${AWK} '/compatibility version/ { print $$1 }' | ${SORT} -u`; \
84 fi; \ 84 fi; \
85 ;; \ 85 ;; \
 86 PE) \
 87 libs=`${AWK} '/\/.+\.dll$$/ { print "${DESTDIR}${PREFIX}/" $$0 } END { exit 0 }' ${_PLIST_NOKEYWORDS}`; \
 88 if ${TEST} -n "$$bins" -o -n "$$libs"; then \
 89 requires=`(${PKGSRC_SETENV} ${LDD_ENV:U} $$ldd $$bins $$libs 2>/dev/null || ${TRUE}) | ${AWK} '$$2 == "=>" && $$3 ~ "/" { print $$3 }' | ${SED} -e 's,^${DESTDIR},,' | ${SORT} -u`; \
 90 fi; \
 91 linklibs=`${AWK} '/.+\.dll$$/ { print "${DESTDIR}${PREFIX}/" $$0 }' ${_PLIST_NOKEYWORDS}`; \
 92 for i in $$linklibs; do \
 93 if ${TEST} -r $$i -a ! -x $$i -a ! -h $$i; then \
 94 ${TEST} ${PKG_DEVELOPER:Uno:Q}"" = "no" || \
 95 ${ECHO} "$$i: installed without execute permission; fixing (should use [BSD_]INSTALL_LIB)"; \
 96 ${CHMOD} +x $$i; \
 97 fi; \
 98 done; \
 99 ;; \
86 esac; \ 100 esac; \
87 requires=`{ for i in $$requires $$requires; do echo $$i; done; \ 101 requires=`{ for i in $$requires $$requires; do echo $$i; done; \
88 ${AWK} '{ print "${PREFIX}/" $$0 }' ${_PLIST_NOKEYWORDS}; } | \ 102 ${AWK} '{ print "${PREFIX}/" $$0 }' ${_PLIST_NOKEYWORDS}; } | \
89 ${SORT} | uniq -c | awk '$$1 == 2 {print $$2}'`; \ 103 ${SORT} | uniq -c | awk '$$1 == 2 {print $$2}'`; \
90 for i in "" $$libs; do \ 104 for i in "" $$libs; do \
91 ${TEST} "$$i" != "" || continue; \ 105 ${TEST} "$$i" != "" || continue; \
92 ${ECHO} "PROVIDES=$${i}"; \ 106 ${ECHO} "PROVIDES=$${i}"; \
93 done | ${SED} -e 's,^PROVIDES=${DESTDIR},PROVIDES=,' \ 107 done | ${SED} -e 's,^PROVIDES=${DESTDIR},PROVIDES=,' \
94 >> ${.TARGET}.tmp; \ 108 >> ${.TARGET}.tmp; \
95 for req in "" $$requires; do \ 109 for req in "" $$requires; do \
96 ${TEST} "$$req" != "" || continue; \ 110 ${TEST} "$$req" != "" || continue; \
97 ${ECHO} "REQUIRES=$$req" >> ${.TARGET}.tmp; \ 111 ${ECHO} "REQUIRES=$$req" >> ${.TARGET}.tmp; \
98 done 112 done