changeset 2287:553fba80ac58 trunk

[svn] - update to objective-make II
author nenolod
date Fri, 05 Jan 2007 19:25:19 -0800
parents 861e6e6edd59
children 64a9db251832
files .depend ChangeLog mk/objective.mk
diffstat 2 files changed, 77 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Jan 05 18:56:29 2007 -0800
+++ b/ChangeLog	Fri Jan 05 19:25:19 2007 -0800
@@ -1,3 +1,11 @@
+2007-01-06 02:56:29 +0000  William Pitcock <nenolod@nenolod.net>
+  revision [3580]
+  - use -Wl,-h for defining the SONAME for POSIX compatibility
+  
+  trunk/mk/objective.mk |    4 ++--
+  1 file changed, 2 insertions(+), 2 deletions(-)
+
+
 2007-01-06 02:50:00 +0000  William Pitcock <nenolod@nenolod.net>
   revision [3578]
   - update bugreporting address
--- a/mk/objective.mk	Fri Jan 05 18:56:29 2007 -0800
+++ b/mk/objective.mk	Fri Jan 05 19:25:19 2007 -0800
@@ -10,12 +10,20 @@
 			$(INSTALL) -d -m 755 $(DESTDIR)/$$i; \
 		fi; \
 	done;
+	@if [ "x$(OVERLAYS)" != "x" ]; then \
+		for i in `find $(OVERLAYS) -type d -maxdepth 1 -mindepth 1`; do \
+			if [ $(VERBOSITY) -gt 0 ]; then \
+				echo "[installing overlay: $$i]"; \
+			fi; \
+			(pushd $$i > /dev/null; OVERLAYS="" $(MAKE) install || exit; cd ..); \
+		done; \
+	fi
 	@if [ "x$(SUBDIRS)" != "x" ]; then \
 		for i in $(SUBDIRS); do \
 			if [ $(VERBOSITY) -gt 0 ]; then \
 				echo "[installing subobjective: $$i]"; \
 			fi; \
-			(cd $$i; $(MAKE) install || exit; cd ..); \
+			(cd $$i; OVERLAYS="" $(MAKE) install || exit; cd ..); \
 		done; \
 	fi
 	@if [ "x$(OBJECTIVE_DIRECTORIES)" != "x" ]; then \
@@ -60,16 +68,24 @@
 
 clean:
 	$(MAKE) clean-prehook
+	@if [ "x$(OVERLAYS)" != "x" ]; then \
+		for i in `find $(OVERLAYS) -type d -maxdepth 1 -mindepth 1`; do \
+			if [ $(VERBOSITY) -gt 0 ]; then \
+				echo "[cleaning overlay: $$i]"; \
+			fi; \
+			(pushd $$i > /dev/null; OVERLAYS="" $(MAKE) clean || exit; popd); \
+		done; \
+	fi
 	@if [ "x$(SUBDIRS)" != "x" ]; then \
 		for i in $(SUBDIRS); do \
 			if [ $(VERBOSITY) -gt 0 ]; then \
 				echo "[cleaning subobjective: $$i]"; \
 			fi; \
-			(cd $$i; $(MAKE) clean || exit; cd ..); \
+			(cd $$i; OVERLAYS="" $(MAKE) clean || exit; cd ..); \
 		done; \
 	fi
 	$(MAKE) clean-posthook
-	rm -f *.o *.lo *.so *.a *.sl
+	rm -f *.o *.lo *.so *.a *.sl .depend-done
 	@if [ "x$(OBJECTIVE_BINS)" != "x" ]; then \
 		for i in $(OBJECTIVE_BINS); do \
 			rm -f $$i; \
@@ -90,12 +106,20 @@
 	fi
 
 distclean: clean
+	@if [ "x$(OVERLAYS)" != "x" ]; then \
+		for i in `find $(OVERLAYS) -type d -maxdepth 1 -mindepth 1`; do \
+			if [ $(VERBOSITY) -gt 0 ]; then \
+				echo "[distcleaning overlay: $$i]"; \
+			fi; \
+			(pushd $$i > /dev/null; OVERLAYS="" $(MAKE) distclean || exit; popd); \
+		done; \
+	fi
 	@if [ "x$(SUBDIRS)" != "x" ]; then \
 		for i in $(SUBDIRS); do \
 			if [ $(VERBOSITY) -gt 0 ]; then \
 				echo "[distcleaning subobjective: $$i]"; \
 			fi; \
-			(cd $$i; $(MAKE) distclean || exit; cd ..); \
+			(cd $$i; OVERLAYS="" $(MAKE) distclean || exit; cd ..); \
 		done; \
 	fi
 	@if [ -f Makefile.in ]; then \
@@ -105,14 +129,25 @@
 		rm -f mk/rules.mk; \
 	fi
 
-build:
+build: depend
 	$(MAKE) build-prehook
+	@if [ "x$(OVERLAYS)" != "x" ]; then \
+		for i in `find $(OVERLAYS) -type d -maxdepth 1 -mindepth 1`; do \
+			if [ $(VERBOSITY) -gt 0 ]; then \
+				echo "[building overlay: $$i]"; \
+			fi; \
+			(pushd $$i > /dev/null; OVERLAYS="" $(MAKE) || exit; popd); \
+			if [ $(VERBOSITY) -gt 0 ]; then \
+				echo "[finished overlay: $$i]"; \
+			fi; \
+		done; \
+	fi
 	@if [ "x$(SUBDIRS)" != "x" ]; then \
 		for i in $(SUBDIRS); do \
 			if [ $(VERBOSITY) -gt 0 ]; then \
 				echo "[building subobjective: $$i]"; \
 			fi; \
-			cd $$i; $(MAKE) || exit; cd ..; \
+			(cd $$i; OVERLAYS="" $(MAKE) || exit; cd ..); \
 			if [ $(VERBOSITY) -gt 0 ]; then \
 				echo "[finished subobjective: $$i]"; \
 			fi; \
@@ -208,9 +243,6 @@
 install-prehook:
 install-posthook:
 
-# compatibility with automake follows
-am--refresh:
-
 mk/rules.mk:
 	@if [ -f "configure" ]; then \
 		echo "[building rules.mk for posix target, run configure manually if you do not want this]"; \
@@ -218,3 +250,31 @@
 		echo "[complete]"; \
 	fi
 
+.PHONY: .depend depend clean distclean
+.depend:
+
+# default depend rule. if something else is needed -- override depend target
+depend:
+	@if [ "x$(SUBDIRS)" != "x" ]; then \
+		for i in $(SUBDIRS); do \
+			if [ $(VERBOSITY) -gt 0 ]; then \
+				echo "[building depend file for subobjective: $$i]"; \
+			fi; \
+			cd $$i; touch .depend; $(MAKE) || exit; cd ..; \
+			if [ $(VERBOSITY) -gt 0 ]; then \
+				echo "[finished subobjective: $$i]"; \
+			fi; \
+		done; \
+	fi
+	if [ ! -f .depend-done ]; then \
+		for i in ${SOURCES}; do \
+			echo "[generating dependencies for objective: $$i]"; \
+			${CC} -MM ${PICFLAGS} ${CPPFLAGS} ${CFLAGS} $$i >> .depend; \
+		done; \
+		touch .depend-done; \
+	fi;
+
+# compatibility with automake follows
+am--refresh:
+
+include .depend