Subject: circular dependency for gcc with USE_GCC[23]
To: None <tech-pkg@netbsd.org>
From: Gavan Fantom <gavan@coolfactor.org>
List: tech-pkg
Date: 08/08/2003 22:14:42
Does this look like a reasonable way to solve the circular dependency
problems with gcc?

It appears to work, in that I can now build gcc, and that doing bmake
clean-depends-list no longer forkbombs the machine. A similar solution
should work for the tools.mk problems, too.

I'll be happy to commit it in the absence of any negative comments.

Index: bsd.pkg.mk
===================================================================
RCS file: /cvsroot/pkgsrc/mk/bsd.pkg.mk,v
retrieving revision 1.1230
diff -b -u -r1.1230 bsd.pkg.mk
--- bsd.pkg.mk	2003/08/04 21:06:47	1.1230
+++ bsd.pkg.mk	2003/08/08 21:14:48
@@ -85,6 +85,8 @@

 INTERACTIVE_STAGE?=	none

+_PKGSRC_DEPS?=		# empty
+
 # Set the default BUILDLINK_DIR, BUILDLINK_X11PKG_DIR,  BUILDLINK_X11_DIR so
 # that if no buildlink2.mk files are included, then they still point to
 # where headers and libraries for installed packages and X11R6 may be found.
@@ -3408,7 +3410,7 @@
 		case "$$CLEAN_DEPENDS_LIST_SEEN" in			\
 		*" "$$dir" "*)  ;; 					\
 		*) 							\
-			CLEAN_DEPENDS_LIST_SEEN=" $$dir `cd ${.CURDIR} ; cd $$dir && ${MAKE} ${MAKEFLAGS} CLEAN_DEPENDS_LIST_SEEN="$$CLEAN_DEPENDS_LIST_SEEN" CLEAN_DEPENDS_LIST_TOP=NO clean-depends-list`";\
+			CLEAN_DEPENDS_LIST_SEEN=" `cd ${.CURDIR} ; cd $$dir && ${MAKE} ${MAKEFLAGS} CLEAN_DEPENDS_LIST_SEEN=\" $$dir $$CLEAN_DEPENDS_LIST_SEEN\" CLEAN_DEPENDS_LIST_TOP=NO clean-depends-list`";\
 			;;						\
 		esac							\
 	done ;								\
Index: gcc.buildlink2.mk
===================================================================
RCS file: /cvsroot/pkgsrc/mk/gcc.buildlink2.mk,v
retrieving revision 1.4
diff -b -u -r1.4 gcc.buildlink2.mk
--- gcc.buildlink2.mk	2003/07/22 01:00:25	1.4
+++ gcc.buildlink2.mk	2003/08/08 21:14:48
@@ -11,9 +11,9 @@

 .include "../../mk/bsd.prefs.mk"

-.if defined(USE_GCC3) && empty(PKGPATH:Mlang/gcc3)
+.if defined(USE_GCC3) && empty(PKGPATH:Mlang/gcc3) && empty(_PKGSRC_DEPS:Mgcc-3.*)
 .  include "../lang/gcc3/buildlink2.mk"
-.elif defined(USE_GCC2) && empty(PKGPATH:Mlang/gcc)
+.elif defined(USE_GCC2) && empty(PKGPATH:Mlang/gcc) && empty(_PKGSRC_DEPS:Mgcc-2.*)
 .  include "../lang/gcc/buildlink2.mk"
 .endif


-- 
Gillette - the best a man can forget