ports/68944: [MAINTAINER] games/pcgen: dynamic plist and various improvements
Herve Quiroz
herve.quiroz at esil.univ-mrs.fr
Tue Jul 13 19:00:26 UTC 2004
With the initial patch, there are chances that user data could get added
to the plist while upgrading the port. Use the attached patch instead.
It builds the plist according to files present in ${WRKSRC} rather than
${DATADIR}.
-------------- next part --------------
--- Makefile.orig Mon Jul 12 13:18:49 2004
+++ Makefile Tue Jul 13 20:56:24 2004
@@ -15,18 +15,14 @@
COMMENT= A Java-based RPG character generator and maintenance program
USE_ZIP= YES
-EXTRACT_AFTER_ARGS= -d pcgen
+NO_WRKSUBDIR= YES
USE_JAVA= YES
JAVA_VERSION= 1.4+
NO_BUILD= YES
-WRKSRC= ${WRKDIR}/pcgen
DATADIR= ${JAVASHAREDIR}/${PORTNAME}
-WRKDIRS= characters data lib outputsheets plugins system
-WRKDOCSDIR= ${WRKSRC}/docs
-WRKSCRIPT= ${WRKSRC}/pcgen.bsd.sh
-PLIST_FILES+= ${DATADIR:S,^${PREFIX}/,,}/filepaths.ini bin/pcgen.sh
-PLIST_DIRS+= ${DATADIR:S,^${PREFIX}/,,}
+DATAFILES= characters data filepaths.ini lib outputsheets pcgen.jar plugins system
+PLIST_FILES+= bin/pcgen.sh ${DATADIR:S,^${PREFIX}/,,}/pcgen.sh
.if !defined(NOPORTDOCS)
PORTDOCS= acknowledgments faqpages gmgen greetings.html index.html \
@@ -35,35 +31,32 @@
pcgen.css systemimages tabpages walkthroughpages
.endif
-pre-extract:
- @${MKDIR} ${WRKSRC}
-
post-extract:
@${FIND} ${WRKSRC} -name CVS | ${XARGS} -t ${RM} -rf
+do-configure:
+ @${ECHO_MSG} "pcgen.filepaths=user" > ${WRKSRC}/filepaths.ini
+ @cd ${WRKSRC} && ${SED} "s|^java|${JAVA}|" pcgen.sh | ${SED} 's|`dirname $$0`|${DATADIR}|' > pcgen.sh.bsd
+
do-install:
@${ECHO_MSG} -n ">> Installing in ${DATADIR}..."
-.for SOMEDIR in ${WRKDIRS}
- @${ECHO_MSG} -n " ${SOMEDIR}"
- @cd ${WRKSRC} && ${FIND} ${SOMEDIR} -type d -exec ${MKDIR} ${DATADIR}/{} ";"
- @cd ${WRKSRC} && ${FIND} ${SOMEDIR} -type f -exec ${INSTALL_DATA} {} ${DATADIR}/{} ";"
-.endfor
- @${ECHO_MSG} -n " pcgen.jar"
- @cd ${WRKSRC} && ${INSTALL_DATA} pcgen.jar ${DATADIR}
- @${ECHO_MSG} -n " pcgen.sh"
- @cd ${WRKSRC} && ${SED} "s|^java|${JAVA}|" pcgen.sh | ${SED} 's|`dirname $$0`|${DATADIR}|' > ${WRKSCRIPT}
- @cd ${WRKSRC} && ${INSTALL_SCRIPT} ${WRKSCRIPT} ${DATADIR}/pcgen.sh
+ @cd ${WRKSRC} && ${FIND} ${DATAFILES} -type d -exec ${MKDIR} ${DATADIR}/{} ";"
+ @cd ${WRKSRC} && ${FIND} ${DATAFILES} -type f -exec ${INSTALL_DATA} {} ${DATADIR}/{} ";"
+ @cd ${WRKSRC} && ${INSTALL_SCRIPT} pcgen.sh.bsd ${DATADIR}/pcgen.sh
+ @${ECHO_MSG} " [ DONE ]"
@${LN} -fs ${DATADIR}/pcgen.sh ${PREFIX}/bin/pcgen.sh
- @${ECHO_MSG} " [DONE]"
- @${ECHO_MSG} -n ">> Configuring..."
- @${ECHO_MSG} "pcgen.filepaths=user" > ${DATADIR}/filepaths.ini
- @${ECHO_MSG} " [DONE]"
-
.if !defined(NOPORTDOCS)
@${ECHO_MSG} -n ">> Installing documentation in ${DOCSDIR}..."
- @cd ${WRKDOCSDIR} && ${FIND} . -type d -exec ${MKDIR} ${DOCSDIR}/{} ";"
- @cd ${WRKDOCSDIR} && ${FIND} . -type f -exec ${INSTALL_DATA} {} ${DOCSDIR}/{} ";"
- @${ECHO_MSG} " [DONE]"
+ @cd ${WRKSRC}/docs && ${FIND} . -type d -exec ${MKDIR} ${DOCSDIR}/{} ";"
+ @cd ${WRKSRC}/docs && ${FIND} . -type f -exec ${INSTALL_DATA} {} ${DOCSDIR}/{} ";"
+ @${ECHO_MSG} " [ DONE ]"
.endif
+
+post-install:
+ @${FIND} -s ${DATAFILES:S,^,${WRKSRC}/,} -not -type d 2>/dev/null | \
+ ${SED} -ne 's,^${WRKSRC},${DATADIR:S,^${PREFIX}/,,},p' >> ${TMPPLIST}
+ @${FIND} -s -d ${DATAFILES:S,^,${WRKSRC}/,} -type d 2>/dev/null | \
+ ${SED} -ne 's,^${WRKSRC}, at dirrm ${DATADIR:S,^${PREFIX}/,,},p' >> ${TMPPLIST}
+ @${ECHO_CMD} '@dirrm ${DATADIR:S,^${PREFIX}/,,}' >> ${TMPPLIST}
.include <bsd.port.mk>
More information about the freebsd-ports-bugs
mailing list