switch to git for plcapi -- refresh module names for module-tools -a & the pending...
[build.git] / Makefile
index 448fc63..c9bd923 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -113,9 +113,6 @@ RPM-INSTALL-DEVEL := rpm --force -Uvh
 RPM-UNINSTALL-DEVEL := rpm -e
 YUM-INSTALL-DEVEL := yum -y install
 
-# see also below
-REMOTE-PLDISTROS="wextoolbox"
-
 #################### Makefile
 # Default target
 all:
@@ -161,30 +158,48 @@ build-SVNPATH := $(lastword $(shell svn info 2> /dev/null | grep URL:))
 endif
 endif
 
-####################
+#################### pldistros that are defined remotely
+# fetching with svn
+define remote_pldistro_fetch_svn
+$(1).config.SVNPATH := $(shell grep -v "^#" config.$(1).svnpath)
+config.$(1): config.$(1).svnpath
+       @echo "Fetching (svn) details for remote pldistro $(1)"
+       svn export $$($(1).config.SVNPATH) config.$(1)
+endef
+
+FOO=@
+# fetching with git
+define remote_pldistro_fetch_git
+$(1).config.GITPATH := $(shell grep -v "^#" config.$(1).gitpath)
+$(1).config.gitrepo := $$(firstword $$(subst @, ,$$($(1).config.GITPATH)))
+$(1).config.gittag := $$(word 2,$$(subst @, ,$$($(1).config.GITPATH)))
+$(1).config.gittag := $$(if $$($(1).config.gittag),$$($(1).config.gittag),master)
+config.$(1): GITPATH=$(shell grep -v "^#" config.$(1).gitpath)
+config.$(1): config.$(1).gitpath
+       @echo "Fetching (git) details for remote pldistro $(1)"
+       mkdir -p config.$(1)
+       git $(GITTAG) archive --remote=$$($(1).config.gitrepo) $$($(1).config.gittag) | tar -C config.$(1) -xf -
+endef
+
+
+# put it together
 define remote_pldistro
 $(1).mk: config.$(1)/$(1).mk
-       @echo 'creating $(1) from config subdir'
+       @echo 'creating $(1) from config.$(1)'
        cp config.$(1)/$(1).mk $(1).mk
 
 $(2).mk: config.$(1)/$(2).mk
-       @echo 'creating $(1) tags from config subdir'
+       @echo 'creating $(2) tags from config.$(1)'
        cp config.$(1)/$(2).mk $(2).mk
 
 config.$(1)/$(1).mk: config.$(1)
 config.$(1)/$(2).mk: config.$(1)
 
-config.$(1): config.$(1).svnpath
-       @echo "Fetching details for pldistro $(1)"
-       svn export $(shell grep -v "^#" config.$(1).svnpath) config.$(1)
-
 DISTCLEANS += $(1).mk $(2).mk config.$(1)
-
+$(eval $(call remote_pldistro_fetch_$(3),$(1)))
 endef
 
-# somehow this does not work, handle manually instead
-#$(foreach distro, $(REMOTE-PLDISTROS), $(eval $(call remote_pldistro,$(distro),$(distro)-tags)))
-$(eval $(call remote_pldistro,wextoolbox,wextoolbox-tags))
+$(eval $(call remote_pldistro,wextoolbox,wextoolbox-tags,git))
 
 ########## stage1 and stage1iter
 # extract specs and compute .mk files by running 
@@ -263,8 +278,8 @@ repo: RPMS/yumgroups.xml
 define stage1_package_vars
 $(1).module := $(firstword $($(1)-MODULES))
 $(1).specpath := SPECS/$(notdir $($(1)-SPEC))
-$(1).moduledir := MODULES/$(firstword $($(1)-MODULES))
-$(1).codespec := MODULES/$(firstword $($(1)-MODULES))/$($(1)-SPEC)
+$(1).moduledir := MODULES/$$($(1).module)
+$(1).codespec := MODULES/$$($(1).module)/$($(1)-SPEC)
 endef
 
 $(foreach package, $(ALL), $(eval $(call stage1_package_vars,$(package))))
@@ -279,10 +294,10 @@ define stage1_module_vars
 ifneq "$($(1)-SVNPATH)" ""
 $(1)-SVNPATH := $(strip $($(1)-SVNPATH))
 else
-$(1)-GITPATH := $(strip $($(1)-GITPATH))
-$(1).gitrepo := $(firstword $(subst @, ,$($(1)-GITPATH)))
-$(1).gittag := $(word 2,$(subst @, ,$($(1)-GITPATH)))
-$(1).gittag := $(if $($(1).gittag),$($(1).gittag),master)
+$(1)-GITPATH := $$(strip $$($(1)-GITPATH))
+$(1).gitrepo := $$(firstword $$(subst @, ,$$($(1)-GITPATH)))
+$(1).gittag := $$(word 2,$$(subst @, ,$$($(1)-GITPATH)))
+$(1).gittag := $$(if $$($(1).gittag),$$($(1).gittag),master)
 endif
 endef
 
@@ -390,7 +405,7 @@ endif
 ### this utility allows to extract various info from a spec file
 ### and to define them in makefiles
 spec2make: spec2make.c
-       $(CC) -g -Wall $< -o $@ -lrpm -lrpmbuild
+       $(CC) -g -Wall $< -o $@ -lrpm -lrpmbuild -lrpmio -lpopt
 
 ### run spec2make on the spec file and include the result
 # usage: spec2make package
@@ -697,7 +712,6 @@ version-build:
        @echo    "Build build-base: $(BASE)"
        @echo    "Build planetlab-distro: $(PLDISTRO)"
        @echo    "Build planetlab-tags: $(PLDISTROTAGS)"
-       @echo -n 'Build planetlab-tagsid: ' ; fgrep '$$''Id' $(PLDISTROTAGS)
        @echo    "Build target-arch: $(HOSTARCH)"
        @echo    "Build target-distro: $(DISTRO)"
        @echo    "Build target-distroname: $(DISTRONAME)"
@@ -755,10 +769,10 @@ info-branches:
 
 module-tools:
        @$(foreach module,$(ALL.modules), \
-        $(if $($(module)-GITPATH), \
+        $(if $($(module)-GITPATH), \
          $(if $($(module)-BRANCH), \
-            echo git:$(module):$($(module)-BRANCH); , \
-            echo git:$(module); ), \
+            echo $(module):$($(module)-BRANCH); , \
+            echo $(module); ), \
          $(if $($(module)-BRANCH), \
             echo $(module):$($(module)-BRANCH); , \
             echo $(module); )))