Date: Tue, 17 Apr 2007 22:47:15 -0400 From: Parv <parv@pair.com> To: Kelly Jones <kelly.terry.jones@gmail.com> Cc: f-q <freebsd-questions@freebsd.org> Subject: Re: Loop/wildcard-like syntax for GNU make? Message-ID: <20070418024715.GA7211@holestein.holy.cow> In-Reply-To: <26face530704171751r243ccf01sbb6d4572e8006a68@mail.gmail.com> References: <26face530704171751r243ccf01sbb6d4572e8006a68@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
in message <26face530704171751r243ccf01sbb6d4572e8006a68@mail.gmail.com>,
wrote Kelly Jones thusly...
Would you mind cutting the number of mailing lists? I think a|any
technical list would have been enough.
Anyway ...
> 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
> }
Following worked with both BSD & GNU make 3.81 (mind the
tabs|spaces)...
# Makefile
all:
@for i in 1 2 3;\
do \
echo "i: $$i";\
done
... so some version of body of a target below should work for you
(mind the spaces|tabs) ...
@cd "$$image_dir";\
for f in *.gif;\
do \
new=$( basename "$$f" '.gif' )'.jpg';\
convert "$$f" "$$new";\
done
- Parv
--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070418024715.GA7211>
