-# $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
-
-# default - overridden by the build
-SPECFILE = omf-resctl.spec
-
-main.URL := http://pkg.mytestbed.net/yum/base/8/i386/omf-resctl-5.3-1ubuntu2-2.noarch.rpm
-main.SHA1SUM := 6f48dd1cb7505ba9301c55f9889fd78842510b68
-main.FILE := $(notdir $(main.URL))
-
-# Thierry - when called from within the build, PWD is /build
-SOURCEFILES := $(main.FILE)
-
-$(main.FILE): #FORCE
- @if [ ! -e "$@" ] ; then echo "$(WEBFETCH) $(main.URL)" ; $(WEBFETCH) $(main.URL) ; fi
- @if [ ! -e "$@" ] ; then echo "Could not download source file: $@ does not exist" ; exit 1 ; fi
- @if test "$$(sha1sum $@ | awk '{print $$1}')" != "$(main.SHA1SUM)" ; then \
- echo "sha1sum of the downloaded $@ does not match the one from 'Makefile'" ; \
- echo "Local copy: $$(sha1sum $@)" ; \
- echo "In Makefile: $(main.SHA1SUM)" ; \
- exit 1 ; \
+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/
+
+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 $@ ; \
+ ls -l $($(1)) ; \
fi
+CLEAN += $($(1))
+endef
-sources: $(SOURCEFILES)
-.PHONY: sources
+$(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))
-#PWD=$(shell pwd)
-#PREPARCH ?= noarch
-#RPMDIRDEFS = --define "_sourcedir $(PWD)" --define "_builddir $(PWD)" --define "_srcrpmdir $(PWD)" --define "_rpmdir $(PWD)"
-#trees: sources
-# rpmbuild $(RPMDIRDEFS) $(RPMDEFS) --nodeps -bp --target $(PREPARCH) $(SPECFILE)
-#
-#srpm: sources
-# rpmbuild $(RPMDIRDEFS) $(RPMDEFS) --nodeps -bs $(SPECFILE)
-#
-#TARGET ?= $(shell uname -m)
-#rpm: sources
-# rpmbuild $(RPMDIRDEFS) $(RPMDEFS) --nodeps --target $(TARGET) -bb $(SPECFILE)
-#
-#clean:
-# rm -f *.rpm *.tgz *.bz2 *.gz
+$(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))"