RPM-UNINSTALL-DEVEL := rpm -e
YUM-INSTALL-DEVEL := yum -y install
-# see also below
-REMOTE-PLDISTROS="wextoolbox"
-
#################### Makefile
# Default target
all:
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
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))))
### 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
@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)"