# WEBFETCH := curl -H Pragma: -O -R -S --fail --show-error SHA1SUM := sha1sum #REPO := http://pkg.mytestbed.net/omf-5.3-federation-v1.1/yum/base/8/i386/ #REPO := http://mirror.onelab.eu/third-party/omf-5.3-federation-v1.1 #REPO := http://pkg.mytestbed.net/rpm/5.3/f14/x86_64/ REPO := http://mirror.onelab.eu/third-party/omf-5.3-federation-v1.2 ALL += omf-resctl omf-resctl-URL := $(REPO)/omf-resctl-5.3-1ubuntu11-2.noarch.rpm omf-resctl-SHA1SUM := e1cbc5cd4d492da16dc95d2d51c0a0e87836919a omf-resctl := $(notdir $(omf-resctl-URL)) ALL += omf-common omf-common-URL := $(REPO)/omf-common-5.3-1ubuntu10-2.noarch.rpm omf-common-SHA1SUM := 9eb16107965ecc29bf54aca964ccfe898085c415 omf-common := $(notdir $(omf-common-URL)) ALL += liblog4r liblog4r-URL := $(REPO)/liblog4r-ruby1.8-1.2-1.noarch.rpm liblog4r-SHA1SUM := d79d8efb0e80655e3b80c1260433dd4537529064 liblog4r := $(notdir $(liblog4r-URL)) ALL += libxmpp4r libxmpp4r-URL := $(REPO)/libxmpp4r-ruby1.8-1.0-1.noarch.rpm libxmpp4r-SHA1SUM := 29c985034d45d5aad8de4b1b87e9f4b753593e2a libxmpp4r := $(notdir $(libxmpp4r-URL)) #ALL += imagezip #imagezip-URL := $(REPO)/imagezip-1.0.0-3.i386.rpm #imagezip-SHA1SUM := 88088ca0aed57edc2b6ad6acc65a0038486fe67e #imagezip := $(notdir $(imagezip-URL)) ALL += omf-expctl omf-expctl-URL := $(REPO)/omf-expctl-5.3-1ubuntu13-2.noarch.rpm omf-expctl-SHA1SUM := 44ea2bc89af5198d1a9f3d2d94bc3eeb93c30c7f omf-expctl := $(notdir $(omf-expctl-URL)) all: $(ALL) .PHONY: all ############################## define download_target $(1): $($(1)) .PHONY: $($(1)) $($(1)): @if [ ! -e "$($(1))" ] ; then echo "$(WEBFETCH) $($(1)-URL)" ; $(WEBFETCH) $($(1)-URL) ; fi @if [ ! -e "$($(1))" ] ; then echo "Could not download source file: $($(1)) does not exist" ; exit 1 ; fi @if test "$$$$($(SHA1SUM) $($(1)) | awk '{print $$$$1}')" != "$($(1)-SHA1SUM)" ; then \ echo "sha1sum of the downloaded $($(1)) does not match the one from 'Makefile'" ; \ echo "Local copy: $$$$($(SHA1SUM) $($(1)))" ; \ echo "In Makefile: $($(1)-SHA1SUM)" ; \ false ; \ else \ ls -l $($(1)) ; \ fi CLEAN += $($(1)) endef $(eval $(call download_target,omf-resctl)) $(eval $(call download_target,omf-common)) $(eval $(call download_target,liblog4r)) $(eval $(call download_target,libxmpp4r)) #$(eval $(call download_target,imagezip)) $(eval $(call download_target,omf-expctl)) clean: rm -f $(CLEAN) .PHONY: clean repobase:=$(subst http://pkg.mytestbed.net/,,$(subst /yum/base/8/i386/,,$(REPO))) # this echoes a script that can be ran on the mirror mirror: @( echo mkdir -p $(repobase); echo cd $(repobase) ; \ $(foreach target,$(ALL), echo curl -O $(REPO)/$($(target)) ; ) ) .PHONY: mirror #################### convenience, for debugging only # make +foo : prints the value of $(foo) # make ++foo : idem but verbose, i.e. foo=$(foo) ++%: varname=$(subst +,,$@) ++%: @echo "$(varname)=$($(varname))" +%: varname=$(subst +,,$@) +%: @echo "$($(varname))"