From: Marc Fiuczynski Date: Tue, 9 Oct 2007 14:22:42 +0000 (+0000) Subject: More fixes to handle the case when there are mixed CVS/SVN X-Git-Tag: 4.2-rc2~557 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=65b992f67c59a1a6ed2b992b5a40bc9abdbaccbc;p=build.git More fixes to handle the case when there are mixed CVS/SVN 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. --- diff --git a/Makefile b/Makefile index 0113b0c9..76c5d261 100644 --- 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)) diff --git a/Rules.mk b/Rules.mk index ce374069..03341cf8 100644 --- 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