ports/86684: [PATCH] pear-PEAR/Makefile.common trimming

Roman Neuhauser neuhauser at sigpipe.cz
Wed Sep 28 17:50:19 UTC 2005


>Number:         86684
>Category:       ports
>Synopsis:       [PATCH] pear-PEAR/Makefile.common trimming
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Sep 28 17:50:18 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Roman Neuhauser
>Release:        FreeBSD 4.10-STABLE i386
>Organization:
>Environment:


	
>Description:
Maintainer on cc.

The attached patch for devel/pear-PEAR/Makefile.common replaces
the do-install-<foo> targets with a .for loop that generates them similarly
to the way default do-install-<foo>-msg targets are created.

I remeber thinking about doing it this way when I was writing the code two
years ago, I don't know why I didn't do it then.

The ${REINPLACE_CMD} calls from do-install-scriptfiles were moved into
a separate post-patch dependency. The patching can easily work for any files
(not just ${SCRIPTFILES}), but I'll leave that for later.

I have tested this with mail/pear-Mail and databases/pear-DB (on 4.10-STABLE),
works with or without NOPORTDOCS.

>How-To-Repeat:
	
>Fix:

	

--- devel::pear-PEAR::Makefile.common-do-install-foo,1.patch begins here ---
Index: devel/pear-PEAR/Makefile.common
===================================================================
RCS file: /home/ncvs/ports/devel/pear-PEAR/Makefile.common,v
retrieving revision 1.13
diff -u -u -r1.13 Makefile.common
--- devel/pear-PEAR/Makefile.common	21 Feb 2005 18:05:04 -0000	1.13
+++ devel/pear-PEAR/Makefile.common	28 Sep 2005 17:08:52 -0000
@@ -58,6 +58,7 @@
 SQLS?=
 SCRIPTFILES?=
 TESTS?=
+_FILESDIR?=
 _DATADIR?=	data
 _DOCSDIR?=	docs
 _EXAMPLESDIR?=	examples
@@ -140,96 +141,53 @@
 	echo "@unexec rmdir %D/${LSQLSDIR:H} 2> /dev/null || true") > ${PLIST}
 . endif
 
-. for t in files docs tests sqls scriptfiles examples data
-.  if !target(do-install-${t}-msg)
-do-install-${t}-msg: .USE
-.  endif
-. endfor
-
-pre-install: 	do-generate-plist
-do-install: 	do-install-files do-install-docs do-install-tests do-install-sqls \
-		do-install-scriptfiles do-install-examples do-install-data
 
-do-install-files: do-install-files-msg
-	@${MKDIR} ${INSTDIR}
-. for dir in ${FILESDIRS}
-	@${MKDIR} ${INSTDIR}/${dir}
-. endfor
-. for file in ${FILES}
-	@${INSTALL_DATA} ${WRKSRC}/${file} ${INSTDIR}/${file}
-. endfor
-
-do-install-docs: do-install-docs-msg
-. if !defined(NOPORTDOCS) && !empty(DOCS)
-	@${ECHO_MSG} "===> Installing documentation in ${DOCSDIR}."
-	@${MKDIR} ${DOCSDIR}
-.  for dir in ${DOCSDIRS}
-	@${MKDIR} ${DOCSDIR}/${dir}
-.  endfor
-.  for file in ${DOCS}
-	@${INSTALL_DATA} ${WRKSRC}/${_DOCSDIR}/${file} ${DOCSDIR}/${file}
-.  endfor
-. endif
-
-do-install-tests: do-install-tests-msg
-. if !empty(TESTS)
-	@${ECHO_MSG} "===> Installing tests in ${TESTSDIR}."
-	@${MKDIR} ${TESTSDIR}
-.  for dir in ${TESTSDIRS}
-	@${MKDIR} ${TESTSDIR}/${dir}
-.  endfor
-.  for file in ${TESTS}
-	@${INSTALL_DATA} ${WRKSRC}/${_TESTSDIR}/${file} ${TESTSDIR}/${file}
-.  endfor
-. endif
-
-do-install-data: do-install-data-msg
-. if !empty(DATA)
-	@${ECHO_MSG} "===> Installing data in ${DATADIR}."
-	@${MKDIR} ${DATADIR}
-.  for dir in ${DATADIRS}
-	@${MKDIR} ${DATADIR}/${dir}
-.  endfor
-.  for file in ${DATA}
-	@${INSTALL_DATA} ${WRKSRC}/${_DATADIR}/${file} ${DATADIR}/${file}
-.  endfor
+INSTALLTGTS=	files tests sqls scriptfiles data 
+. if !defined(NOPORTDOCS)
+INSTALLTGTS+=	docs examples
 . endif
 
-do-install-sqls: do-install-sqls-msg
-. if !empty(SQLS)
-	@${ECHO_MSG} "===> Installing sqls in ${SQLSDIR}."
-	@${MKDIR} ${SQLSDIR}
-.  for dir in ${SQLSDIRS}
-	@${MKDIR} ${SQLSDIR}/${dir}
-.  endfor
-.  for file in ${SQLS}
-	@${INSTALL_DATA} ${WRKSRC}/${_SQLSDIR}/${file} ${SQLSDIR}/${file}
-.  endfor
-. endif
+post-patch:	do-subst-paths
+pre-install: 	do-generate-plist
+do-install: 	${INSTALLTGTS:S/^/do-install-&/}
 
-do-install-scriptfiles: do-install-scriptfiles-msg
-. if !empty(SCRIPTFILES)
-	@${ECHO_MSG} "===> Installing scripts in ${SCRIPTFILESDIR}."
-.  for file in ${SCRIPTFILES}
+do-subst-paths:
+. for file in ${SCRIPTFILES}
 	@${CP} ${WRKSRC}/pear-${file} ${WRKSRC}/${file}
 	@${REINPLACE_CMD} -e "s|@php_bin@|${SCRIPTFILESDIR}/php|g" ${WRKSRC}/${file}
 	@${REINPLACE_CMD} -e "s|@php_dir@|${PREFIX}/lib/php|g" ${WRKSRC}/${file}
 	@${REINPLACE_CMD} -e "s|@include_path@|${PREFIX}/${LPEARDIR}|g" ${WRKSRC}/${file}
-	@${INSTALL_SCRIPT} ${WRKSRC}/${file} ${SCRIPTFILESDIR}/${file}
-.  endfor
-. endif
+. endfor
 
-do-install-examples: do-install-examples-msg
-. if !defined(NOPORTDOCS) && !empty(EXAMPLES)
-	@${ECHO_MSG} "===> Installing examples in ${EXAMPLESDIR}."
-	@${MKDIR} ${EXAMPLESDIR}
-.  for dir in ${EXAMPLESDIRS}
-	@${MKDIR} ${EXAMPLESDIR}/${dir}
-.  endfor
-.  for file in ${EXAMPLES}
-	@${INSTALL_DATA} ${WRKSRC}/${_EXAMPLESDIR}/${file} ${EXAMPLESDIR}/${file}
-.  endfor
-. endif
+. for t in files docs tests sqls examples
+_INSTALL_${t:U}=	${INSTALL_DATA}
+. endfor
+_INSTALL_SCRIPTFILES=	${INSTALL_SCRIPT}
+
+IFILESDIR=	${INSTDIR}
+IDATADIR=	${DATADIR}
+IDOCSDIR=	${DOCSDIR}
+IEXAMPLESDIR=	${EXAMPLESDIR}
+ISQLSDIR=	${SQLSDIR}
+ISCRIPTFILESDIR=${SCRIPTFILESDIR}
+ITESTSDIR=	${TESTSDIR}
+
+. for t in ${INSTALLTGTS}
+.  if !target(do-install-${t}-msg)
+do-install-${t}-msg: .USE
+.  endif
+do-install-${t}: do-install-${t}-msg
+.  if !empty(${t:U})
+	@${ECHO_MSG} "===> Installing ${t} in ${I${t:U}DIR}."
+	@${MKDIR} ${I${t:U}DIR}
+.   for dir in ${${t:U}DIRS}
+	@${MKDIR} ${I${t:U}DIR}/${dir}
+.   endfor
+.   for file in ${${t:U}}
+	@${_INSTALL_${t:U}} ${WRKSRC}/${_${t:U}DIR}/${file} ${I${t:U}DIR}/${file}
+.   endfor
+.  endif
+. endfor
 .endif
 
 post-install:
--- devel::pear-PEAR::Makefile.common-do-install-foo,1.patch ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list