[Techtalk] Loop/wildcard-like syntax for GNU make?

Kelly Jones kelly.terry.jones at gmail.com
Wed Apr 18 00:51:10 UTC 2007

Here's a Makefile that converts 3 GIFs to JPGs in a given directory:

1.jpg: 1.gif
       /usr/local/bin/convert 1.gif 1.jpg
2.jpg: 2.gif
       /usr/local/bin/convert 2.gif 2.jpg
3.jpg: 3.gif
       /usr/local/bin/convert 3.gif 3.jpg

How do I generalize this to apply to ALL the GIFs in a given
directory? I tried:

*.jpg: *.gif
       /usr/bin/local/bin/convert $1.gif $1.jpg

but this obviously doesn't work (I didn't really expect it to). Neither does

for $i (*.jpg) {
$i.jpg: $i.gif
        /usr/bin/local/bin/convert $i.gif $i.jpg

(again, didn't really expect it to, since you can't put shell looping
into a Makefile).

We're just a Bunch Of Regular Guys, a collective group that's trying
to understand and assimilate technology. We feel that resistance to
new ideas and technology is unwise and ultimately futile.

More information about the Techtalk mailing list