More fixes to handle the case when there are mixed CVS/SVN
authorMarc Fiuczynski <mef@cs.princeton.edu>
Tue, 9 Oct 2007 14:22:42 +0000 (14:22 +0000)
committerMarc Fiuczynski <mef@cs.princeton.edu>
Tue, 9 Oct 2007 14:22:42 +0000 (14:22 +0000)
repositories.  Rules.mk will first check if there are package specific
SVN or CVS repositories, and then check whether a global CVS or SVN
repository is specified.  Note that there one should only specify
either a global CVS or SNV repository---not both, which I suppose one
could check for.

Makefile
Rules.mk

index 0113b0c..76c5d26 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -45,10 +45,10 @@ clean:
 else
 
 # Define variables for Rules.mk
-CVSROOT := $(if $($(package)-CVSROOT),$($(package)-CVSROOT),$(CVSROOT))
+#CVSROOT := $(if $($(package)-CVSROOT),$($(package)-CVSROOT),$(CVSROOT))
+#SVNPATH := $(if $($(package)-SVNPATH),$($(package)-SVNPATH),$(SVNPATH))
 TAG := $(if $($(package)-TAG),$($(package)-TAG),$(TAG))
 MODULE := $($(package)-MODULE)
-SVNPATH := $(if $($(package)-SVNPATH),$($(package)-SVNPATH),$(SVNPATH))
 SPEC := $($(package)-SPEC)
 RPMFLAGS := $(if $($(package)-RPMFLAGS),$($(package)-RPMFLAGS),$(RPMFLAGS))
 RPMBUILD := $(if $($(package)-RPMBUILD),$($(package)-RPMBUILD),$(RPMBUILD))
index ce37406..03341cf 100644 (file)
--- a/Rules.mk
+++ b/Rules.mk
@@ -34,13 +34,13 @@ else
         # Define cvstag for tagged builds
        echo "%define cvstag $(TAG)" >> $@
 endif
-       $(if $(CVSROOT),\
-         cvs -d $(if $($(package)-CVSROOT),$($(package)-CVSROOT),$(CVSROOT)) checkout -r $(TAG) -p $(_MAINMODULE)/$(SPEC) >> $@; \
-       )
-
-       $(if $(SVNPATH),\
-         svn cat $(if $($(package)-SVNPATAH),$($(package)-SVNPATH),$(SVNPATH))/$(_MAINMODULE)/$(TAG)/$(SPEC) >> $@; \
-       )
+       $(if $($(package)-CVSROOT), cvs -d $($(package)-CVSROOT) checkout -r $(TAG) -p $(_MAINMODULE)/$(SPEC) >> $@; ,\
+         $(if $($(package)-SVNPATH), svn cat $($(package)-SVNPATH)/$(_MAINMODULE)/$(TAG)/$(SPEC) >> $@; ,\
+           $(if $(CVSROOT), cvs -d $(CVSROOT) checkout -r $(TAG) -p $(_MAINMODULE)/$(SPEC) >> $@; ,\
+             $(if $(SVNPATH), svn cat $(SVNPATH)/$(_MAINMODULE)/$(TAG)/$(SPEC) >> $@; ) \
+            )\
+          )\
+        )
 
 #
 # Parse spec file into Makefile fragment
@@ -81,19 +81,29 @@ SOURCEDIRS := $(call stripext,$(SOURCES))
 ifeq "$(MULTI_MODULE)" ""
 # single module: do as before
 SOURCES/$(package):
-       mkdir -p SOURCES && cd SOURCES && (\
-        $(if $(CVSROOT), cvs -d $(if $($(package)-CVSROOT),$($(package)-CVSROOT),$(CVSROOT)) export -r $(TAG) -d $(package) $(MODULE);) \
-        $(if $(SVNPATH), svn export $(if $($(package)-SVNPATH),$($(package)-SVNPATH),$(SVNPATH))/$(MODULE)/$(TAG) $(package) ;) \
-       )
+       mkdir -p SOURCES && cd SOURCES && \
+        (\
+        $(if $($(package)-CVSROOT), cvs -d $($(package)-CVSROOT) export -r $(TAG) -d $(package) $(MODULE); ,\
+          $(if $($(package)-SVNPATH), svn export $($(package)-SVNPATH)/$(MODULE)/$(TAG) $(package) ; ,\
+            $(if $(CVSROOT), cvs -d $(CVSROOT) export -r $(TAG) -d $(package) $(MODULE); ,\
+              $(if $(SVNPATH), svn export $(SVNPATH)/$(MODULE)/$(TAG) $(package) ;) \
+             )\
+           )\
+         )\
+        )
 else
 # multiple modules : iterate 
 SOURCES/$(package):
-       mkdir -p SOURCES/$(package) && cd SOURCES/$(package) && (\
+       mkdir -p SOURCES/$(package) && cd SOURCES/$(package) && \
         $(foreach module,$(MODULE),\
-         $(if $(CVSROOT), cvs -d $(if $($(module)-CVSROOT),$($(module)-CVSROOT),$(CVSROOT)) export -r $(TAG)  $(module);)\
-         $(if $(SVNPATH), svn export $(if $($(module)-SVNPATH),$($(module)-SVNPATH),$(SVNPATH))/$(module)/$(TAG) $(module);)\
-        )\
-        )
+          $(if $($(module)-CVSROOT), cvs -d $($(module)-CVSROOT) export -r $(TAG) -d $(module) $(module); ,\
+            $(if $($(module)-SVNPATH), svn export $($(module)-SVNPATH)/$(module)/$(TAG) $(module) ; ,\
+              $(if $(CVSROOT), cvs -d $(CVSROOT) export -r $(TAG) -d $(module) $(module); ,\
+                $(if $(SVNPATH), svn export $(SVNPATH)/$(module)/$(TAG) $(module) ;) \
+               )\
+             )\
+           )\
+         )
 endif
 
 # Make a hard-linked copy of the exported directory for each Source