# WEBFETCH := curl -H Pragma: -O -R -S --fail --show-error SHA1SUM := sha1sum # initial from http://oml.mytestbed.net/attachments/download/496/oml2-2.5.1.tar.gz REPO := http://mirror.onelab.eu/third-party/ ALL += oml oml-URL := $(REPO)/oml2-2.6.1.tar.gz oml-SHA1SUM := 529b23cc1199cac1bcd6066f9df9d8063a76da23 oml := $(notdir $(oml-URL)) ALL += oml 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,oml)) clean: rm -f $(CLEAN) .PHONY: clean #################### 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))"