Module Name:    src
Committed By:   mrg
Date:           Sun Dec 13 09:25:57 UTC 2009

Added Files:
        src/compat/dirshack: Makefile

Log Message:
a hack to force the top-level compat objdir to be created before the
library ones are.  the Makefile has a long description of what's
really going on here.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/compat/dirshack/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: src/compat/dirshack/Makefile
diff -u /dev/null src/compat/dirshack/Makefile:1.1
--- /dev/null	Sun Dec 13 09:25:57 2009
+++ src/compat/dirshack/Makefile	Sun Dec 13 09:25:57 2009
@@ -0,0 +1,30 @@
+#	$NetBSD: Makefile,v 1.1 2009/12/13 09:25:57 mrg Exp $
+
+# hacky method to get compat multilib base objdirs created before
+# make tries to go create the subdirs used for builds.
+
+# the problem is that make handles objdir creation for subdirs before it
+# handles this current directory, so when make cd's into $arch/$libtype
+# and from there into the ../../lib dirs, it ends up setting the forced
+# MAKEOBJDIRPREFIX to something based upon ${.CURDIR}, since the objdir
+# doesn't exist yet.
+# 
+# our solution is simple - from this Makefile we traverse the same list
+# of $arch/$libtype's with "BOOTSTRAP_SUBDIR=".  then the compat/Makefile
+# handles these subdirs as normal, with the base objdir created.
+
+.include <bsd.own.mk>
+
+.if ${MKCOMPAT} != "no"
+.if make(obj)
+
+.include "../archdirs.mk"
+
+MAKEDIRTARGETENV=	BOOTSTRAP_SUBDIRS=
+
+SUBDIR=	${ARCHDIR_SUBDIR:C/^/..\//}
+
+.endif	# make(obj)
+.endif	# MKCOMPAT != no
+
+.include <bsd.subdir.mk>

Reply via email to