Awesome thanks for that explanation. What happens with multiple wildcards? For example, say I have Illumina paired end sequencing files (sample1_R1.fastq.gz and sample1_R2.fastq.gz), can you easily run both paired files using the same pattern substitution rules as you showed above?
# Set of fastq files to process.
fastqR1_files := $(wildcard *R1.fastq.gz)
fastqR2_files := $(wildcard *R2.fastq.gz)
# For each paired fastq.gz generate a sam file
fastqpaired : $(fasta_files:.fastq.gz=.sam)
Btw, is this question borderline off-topic?