ports/57438: [PATCH] bsd.port.subdir.mk: fix INDEX build

Oliver Eikemeier eikemeier at fillmore-labs.com
Wed Oct 1 01:10:20 UTC 2003


>Number:         57438
>Category:       ports
>Synopsis:       [PATCH] bsd.port.subdir.mk: fix INDEX build
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Sep 30 18:10:16 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Oliver Eikemeier
>Release:        FreeBSD 4.9-PRERELEASE i386
>Organization:
Fillmore Labs - http://www.fillmore-labs.com
>Environment:
System: FreeBSD nuuk.fillmore-labs.com 4.9-PRERELEASE

>Description:

INDEX building fails with ports like `clean' because bsd.port.subdir.mk
defines targets with the exact subdirectory names, leading to
various problems if they conflict with otherwise defined targets.

The patch prepends a `_' to every make target.

>How-To-Repeat:

Don't!

See: http://lists.freebsd.org/pipermail/freebsd-ports/2003-September/005010.html

>Fix:

--- bsd.port.subdir.mk.patch begins here ---
diff -u -r1.49 bsd.port.subdir.mk
--- bsd.port.subdir.mk	6 Jul 2003 23:57:41 -0000	1.49
+++ bsd.port.subdir.mk	30 Sep 2003 20:59:38 -0000
@@ -99,7 +99,7 @@
 .for __target in ${TARGETS}
 .if !target(${__target})
 .if defined(SUBDIR) && !empty(SUBDIR)
-${__target}: ${SUBDIR:S/$/.${__target}/}
+${__target}: ${SUBDIR:S/^/_/:S/$/.${__target}/}
 .else
 ${__target}:
 .endif
@@ -109,18 +109,18 @@
 .if defined(SUBDIR) && !empty(SUBDIR)
 
 .for __target in ${TARGETS} checksubdirs readmes
-${SUBDIR:S/$/.${__target}/}: _SUBDIRUSE
+${SUBDIR:S/^/_/:S/$/.${__target}/}: _SUBDIRUSE
 .endfor
 
 _SUBDIRUSE: .USE
-	@OK=""; sub=${.TARGET:R}; \
+	@OK=""; sub=${.TARGET:S/^_//:R}; \
 	for dud in $$DUDS; do \
 		if [ $${dud} = $$sub ]; then \
 			OK="false"; \
 			${ECHO_MSG} "===> ${DIRPRFX}$$sub skipped"; \
 		fi; \
 	done; \
-	if test -d ${.CURDIR}/${.TARGET:R}.${MACHINE_ARCH}; then \
+	if test -d ${.CURDIR}/$${sub}.${MACHINE_ARCH}; then \
 		edir=$${sub}.${MACHINE_ARCH}; \
 	elif test -d ${.CURDIR}/$${sub}; then \
 		edir=$${sub}; \
@@ -135,7 +135,7 @@
 			DIRPRFX=${DIRPRFX}$$edir/; \
 	fi
 
-.for _subdir in ${SUBDIR}
+.for _subdir in ${SUBDIR:S/^/_/}
 ${_subdir}::   ${_subdir:S/$/.all/}
 .endfor
 
@@ -150,14 +150,14 @@
 .endif
 install: afterinstall
 afterinstall: realinstall
-realinstall: beforeinstall ${SUBDIR:S/$/.realinstall/}
+realinstall: beforeinstall ${SUBDIR:S/^/_/:S/$/.realinstall/}
 .endif
 
 IGNOREDIR=	CVS Mk Templates Tools distfiles packages pkg
 
 .if !target(checksubdirs)
 .if defined(PORTSTOP)
-checksubdirs: checksubdir ${SUBDIR:S/$/.checksubdirs/}
+checksubdirs: checksubdir ${SUBDIR:S/^/_/:S/$/.checksubdirs/}
 .else
 checksubdirs: checksubdir
 .endif
@@ -187,7 +187,7 @@
 .endif
 
 .if !target(readmes)
-readmes: readme ${SUBDIR:S/$/.readmes/}
+readmes: readme ${SUBDIR:S/^/_/:S/$/.readmes/}
 .endif
 
 .if !target(readme)
--- bsd.port.subdir.mk.patch ends here ---


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



More information about the freebsd-ports-bugs mailing list