[csw-devel] SF.net SVN: gar:[2454] csw/mgar/pkg/Makefile

dmichelsen at users.sourceforge.net dmichelsen at users.sourceforge.net
Wed Dec 3 19:16:48 CET 2008


Revision: 2454
          http://gar.svn.sourceforge.net/gar/?rev=2454&view=rev
Author:   dmichelsen
Date:     2008-12-03 18:16:48 +0000 (Wed, 03 Dec 2008)

Log Message:
-----------
mGAR: Add target 'garlinks' to use symlinks instead of externals

Modified Paths:
--------------
    csw/mgar/pkg/Makefile

Modified: csw/mgar/pkg/Makefile
===================================================================
--- csw/mgar/pkg/Makefile	2008-12-03 12:45:04 UTC (rev 2453)
+++ csw/mgar/pkg/Makefile	2008-12-03 18:16:48 UTC (rev 2454)
@@ -2,28 +2,47 @@
 # This makefile is to be included from Makefiles in each category
 # directory.
 
+# This contains all directories containing packages
+SUBDIRS = cpan xfce
+
+FILTER_DIRS = CVS/
+
 default:
 	@echo "You are in the pkg/ directory."
 
 %:
-	@for i in $(filter-out CVS/,$(wildcard */)) ; do \
+	@for i in $(filter-out $(FILTER_DIRS),$(wildcard */)) ; do \
 		$(MAKE) -C $$i $* ; \
 	done
 
 paranoid-%:
-	@for i in $(filter-out CVS/,$(wildcard */)) ; do \
+	@for i in $(filter-out $(FILTER_DIRS),$(wildcard */)) ; do \
 		$(MAKE) -C $$i $* || exit 2; \
 	done
 
 export BUILDLOG ?= $(shell pwd)/buildlog.txt
 
 report-%:
-	@for i in $(filter-out CVS/,$(wildcard */)) ; do \
+	@for i in $(filter-out $(FILTER_DIRS),$(wildcard */)) ; do \
 		$(MAKE) -C $$i $* || echo "	*** make $* in $$i failed ***" >> $(BUILDLOG); \
 	done
 
+# When the complete package tree is checked out there would be literally hundreds
+# of instances of GAR as they are referenced as external references. Alternatively
+# you can check out the tree with
+#   svn co --ignore-externals https://.../pkg
+# and then run
+#   gmake garlinks
+# to generate symbolic links instead of externally checked out dirs
+
+# Lines returned by 'svn propget -R' look like this:
+#   cpan/Test-Memory-Cycle/trunk - gar https://gar.svn.sf.net/svnroot/gar/csw/mgar/gar/v1
+
+garlinks:
+	@(svn propget svn:externals -R | perl -ane 'next if( /^$$/ );($$path,$$sep,$$dir,$$link)=@F;($$upsteps=$$path)=~s![^/]+!..!g;(($$linkdest=$$link))=~ s!https://gar.svn.sf.net/svnroot/gar/csw/mgar!$$upsteps!;print "Linking $$path/$$dir to ../$$linkdest", symlink("../$$linkdest","$$path/$$dir") ? "" : " failed", "\n";')
+
 pkglist:
-	@for i in $(filter-out $(FILTER_DIRS),$(wildcard */)) ; do \
+	@for i in $(filter-out $(FILTER_DIRS),$(foreach D,. $(SUBDIRS),$(wildcard $D/*/))) ; do \
 		$(MAKE) -s -C $$i/trunk pkglist ; \
 	done
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the devel mailing list