aboutsummaryrefslogtreecommitdiff
path: root/reproduce/src/make/download.mk
blob: 244bd04cec7d919c15067bf81c942d2d90e901a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# Download all the necessary inputs if they are not already present.
#
# Since most systems only have one input/connection into the network,
# downloading is essentially a serial (not parallel) operation. so the
# recipes in this Makefile all use a single file lock to have one download
# script running at every instant.
#
# Original author:
#     Your name <your@email.address>
# Contributing author(s):
# Copyright (C) YYYY, Your Name.
#
# This Makefile is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This Makefile is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
# Public License for more details. See <http://www.gnu.org/licenses/>.





# Identify the downloader tool
# ----------------------------
#
# If cURL is already present, that will be used, otherwise, we'll use
# Wget. Since the options specifying the output filename are different
# between the two, we'll also specify the output option within the
# `downloader' variable. So it is important to first give the output
# filename after calling `downloader', then the web address.
downloader := $(shell if type curl > /dev/null; then downloader="curl -o";  \
	              else                           downloader="wget -O";  \
	              fi; echo "$$downloader";                               )





# Download SURVEY data
# --------------------
#
# Data from a survey (for example an imaging survey) usually have a special
# file-name format which should be set here in the `foreach' loop. Note
# that the `foreach' function needs the backslash (`\') at the end of the
# line when it is broken into multiple lines.
all-survey = $(foreach f, $(filters-survey),                                 \
                          $(SURVEY)/a-special-format-$(f).fits               \
                          $(SURVEY)/a-possibly-additional-$(f)-format.fits )
$(SURVEY):; mkdir $@
$(all-survey): $(SURVEY)/%: | $(SURVEY) $(lockdir)
	flock $(lockdir)/download -c "$(downloader) $@ $(web-survey)/$*"






# Final TeX macro
# ---------------
#
# It is very important to mention the address where the data were
# downloaded in the final report.
$(mtexdir)/download.tex: $(pconfdir)/web.mk | $(mtexdir)
	@echo "\\newcommand{\\websurvey}{$(web-survey)}" > $@