I am trying to create a list of targets that depend on one file only. The list I want to create is very long and I may have to add even more elements to it, so I would like to use loops to create that target list. The targets differ mainly by their paths.
I think I just need to find out how to append or add to list in makefile, so I can create the target list I want (TARGETS) in a loop.
Here is what I have so far:
.PHONY: all dircreate dircreate_sub
# Create shortcuts to directories ##############################################
DAT4 = data/4-Year/
DAT2 = data/2-Year/
DEPVARS = a b
# Create directories ###########################################################
dircreate:
mkdir -p \
data/ \
data/4-Year/ \
data/2-Year/
dircreate_sub:
for d in $(DEPVARS); do \
mkdir -p data/4-Year/$$d ; \
mkdir -p data/2-Year/$$d ; \
done;
TARGETS = \
for d in $(DEPVARS); do \
$(DAT4)$$d/train_index.RDS \
$(DAT2)$$d/train_index.RDS \
$(DAT4)$$d/test_index.RDS \
$(DAT2)$$d/test_index.RDS; \
done;
$(TARGETS): \
dataprep.R \
funcs.R \
../core/data/analysis.data.RDS
Rscript $<
all: dircreate dircreate_sub $(TARGETS)