# $Id: Makefile 16421 2010-01-04 11:29:55Z thierry $ # $URL: svn+ssh://thierry@svn.planet-lab.org/svn/madwifi/trunk/Makefile $ # 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 ALL += omf-resctl omf-resctl-URL := $(REPO)/omf-resctl-5.3-1ubuntu7-2.noarch.rpm omf-resctl-SHA1SUM := c757123d216e7a11ab971101d2e9fdf450dd301d omf-resctl := $(notdir $(omf-resctl-URL)) ALL += omf-common omf-common-URL := $(REPO)/omf-common-5.3-1ubuntu6-2.noarch.rpm omf-common-SHA1SUM := f79ecfc7e6bad69fa4b980c8e8ec3ea35723f83c omf-common := $(notdir $(omf-common-URL)) ALL += liblog4r liblog4r-URL := $(REPO)/liblog4r-ruby1.8-1.2-1.noarch.rpm liblog4r-SHA1SUM := 4301cc01e65fdd1c136356ea8735ef935d997ccc liblog4r := $(notdir $(liblog4r-URL)) ALL += libxmpp4r libxmpp4r-URL := $(REPO)/libxmpp4r-ruby1.8-1.0-1.noarch.rpm libxmpp4r-SHA1SUM := 3332f38a3de90a9e0947d50d48d955cb946eba35 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-1ubuntu6-2.noarch.rpm omf-expctl-SHA1SUM := 6db226d88849da4519bbdb19fd90dbfd1c2571e7 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))"