From: Thierry Parmentelat Date: Mon, 12 Feb 2007 09:42:25 +0000 (+0000) Subject: svn-capable : knows how to use component-SVNPATH variable if set X-Git-Tag: 4.2-rc2~648 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=76841edea9134470e8c067cc3293e7034b98e191;p=build.git svn-capable : knows how to use component-SVNPATH variable if set --- diff --git a/Rules.mk b/Rules.mk index 2f0de4c0..9b2859d6 100644 --- a/Rules.mk +++ b/Rules.mk @@ -4,7 +4,7 @@ # Mark Huang # Copyright (C) 2003-2006 The Trustees of Princeton University # -# $Id: Rules.mk,v 1.27 2007/01/29 19:18:45 thierry Exp $ +# $Id: Rules.mk,v 1.28 2007/02/09 01:16:19 thierry Exp $ # # Base rpmbuild in the current directory @@ -27,7 +27,10 @@ else # Define cvstag for tagged builds echo "%define cvstag $(TAG)" >> $@ endif - cvs -d $(CVSROOT) checkout -r $(TAG) -p $(SPEC) >> $@ + $(if $($(package)-SVNPATH),\ + svn cat $($(package)-SVNPATH)/$(SPEC) >> $@,\ + cvs -d $(CVSROOT) checkout -r $(TAG) -p $(SPEC) >> $@) + # # Parse spec file into Makefile fragment @@ -61,7 +64,8 @@ $(patsubst %.tar,%,$(1)))))) SOURCEDIRS := $(call stripext,$(SOURCES)) # Thierry - Jan 29 2007 -# Allow different modules to have different CVSROOT's +# Allow different modules to have different CVSROOT +# and/or to be extracted from their SVNPATH # # is there a single module ? to mimick cvs export -d behaviour MULTI_MODULE := $(word 2,$(MODULE)) @@ -69,14 +73,18 @@ ifeq "$(MULTI_MODULE)" "" # single module: do as before SOURCES/$(package): mkdir -p SOURCES - cd SOURCES && cvs -d $(CVSROOT) export -r $(TAG) -d $(package) $(MODULE) + $(if $($(package)-SVNPATH),\ + cd SOURCES && svn export $($(package)-SVNPATH) $(package),\ + cd SOURCES && cvs -d $(CVSROOT) export -r $(TAG) -d $(package) $(MODULE)) else # multiple modules : iterate SOURCES/$(package): mkdir -p SOURCES/$(package) && cd SOURCES/$(package) && (\ $(foreach module,$(MODULE),\ - cvs -d $(if $($(module)-CVSROOT),$($(module)-CVSROOT),$(CVSROOT)) export -r $(TAG) $(module);\ - )) + $(if $($(module)-SVNPATH), \ + svn export $($(module)-SVNPATH) $(module), \ + cvs -d $(if $($(module)-CVSROOT),$($(module)-CVSROOT),$(CVSROOT)) export -r $(TAG) $(module);\ + ))) endif # Make a hard-linked copy of the exported directory for each Source