From 35cfe234ebceaae7caca1b5b4fb191d02af0ee9c Mon Sep 17 00:00:00 2001 From: Marc Fiuczynski Date: Tue, 9 Oct 2007 13:38:15 +0000 Subject: [PATCH] Fixes so that things work properly when we use SVN or CVS. If there are multiple packages listed per module, the code currently assumes that the first package in the module list is the one that contains the specfile. --- Rules.mk | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/Rules.mk b/Rules.mk index 92c20e18..ce374069 100644 --- a/Rules.mk +++ b/Rules.mk @@ -16,6 +16,13 @@ export CVSROOT CVS_RSH # SPECFILE := SPECS/$(notdir $(SPEC)) +MULTI_MODULE := $(word 2,$(MODULE)) +# is there a single module ? to mimick cvs export -d behaviour +ifeq "$(MULTI_MODULE)" "" + _MAINMODULE := $(MODULE) +else + _MAINMODULE := $(firstword $(MODULE)) +endif $(SPECFILE): mkdir -p SPECS @@ -28,11 +35,11 @@ else echo "%define cvstag $(TAG)" >> $@ endif $(if $(CVSROOT),\ - cvs -d $(if $($(package)-CVSROOT),$($(package)-CVSROOT),$(CVSROOT)) checkout -r $(TAG) -p $(MODULE)/$(SPEC) >> $@; \ + cvs -d $(if $($(package)-CVSROOT),$($(package)-CVSROOT),$(CVSROOT)) checkout -r $(TAG) -p $(_MAINMODULE)/$(SPEC) >> $@; \ ) $(if $(SVNPATH),\ - svn cat $(if $($(package)-SVNPATAH),$($(package)-SVNPATH),$(SVNPATH))/$(MODULE)/$(TAG)/$(SPEC) >> $@; \ + svn cat $(if $($(package)-SVNPATAH),$($(package)-SVNPATH),$(SVNPATH))/$(_MAINMODULE)/$(TAG)/$(SPEC) >> $@; \ ) # @@ -71,29 +78,22 @@ SOURCEDIRS := $(call stripext,$(SOURCES)) # and/or to be extracted from their SVNPATH # # is there a single module ? to mimick cvs export -d behaviour -MULTI_MODULE := $(word 2,$(MODULE)) ifeq "$(MULTI_MODULE)" "" # single module: do as before SOURCES/$(package): - mkdir -p SOURCES - $(if $(CVSROOT),\ - cd SOURCES && cvs -d $(if $($(package)-CVSROOT),$($(package)-CVSROOT),$(CVSROOT)) export -r $(TAG) -d $(package) $(MODULE);\ - ) - $(if $(SVNPATH),\ - cd SOURCES && svn export $(if $($(package)-SVNPATH),$($(package)-SVNPATH),$(SVNPATH))/$(MODULE)/$(TAG) $(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) ;) \ ) else # multiple modules : iterate 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);\ - ) - )) + $(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);)\ + )\ + ) endif # Make a hard-linked copy of the exported directory for each Source -- 2.47.0