[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: how to do this with Makefile

From: Pascal Bourguignon
Subject: Re: how to do this with Makefile
Date: Thu, 14 Dec 2006 01:39:33 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.91 (gnu/linux)

"FangQ" <> writes:

> hi
> I am writing a Makefile to convert a bdf file into different pcf files
> corresponding to different unicode ranges, the striped down version of
> my Makefile looks like the following
> B2P=bdftopcf
> CJKBASIC=0x4E00--0x9FA5
> CJKEXTA=0x3400--0x4DB5
> CJK1=0x1100--0x11FF 0x2460--0x24EA
> CJK2=0x2605--0x2606 0x262F--0x2637
> CJK3=0x3105--0x312C 0x3131--0x318E
> cjka: RANGE=$(CJKEXTA)
> cjk: $(SLICE)
>       $(SLICE) $(RANGE) $(R9).bdf  > $(R9)_cjk.bdf
>       $(SLICE) $(RANGE) $(R10).bdf > $(R10)_cjk.bdf
>       $(SLICE) $(RANGE) $(R11).bdf > $(R11)_cjk.bdf
>       $(B2P) $(R9)_cjk.bdf  > $(R9).pcf
>       $(B2P) $(R10)_cjk.bdf > $(R10).pcf
>       $(B2P) $(R11)_cjk.bdf > $(R11).pcf
> (the above code snip does not work, as you may notice)
> what I want to do is when user make different targets, I want the
> variable RANGE to change its value correspondingly. However, I don't
> want to repeat the command block for each target.
> I believe there must be an elegant way of doing this, i.e. set
> variables differently for each target and execute a common set of
> commands. However, I can not find it after an hour of search, so I hope
> someone can help me up.

What I do:

        $(MAKE) $(MFLAGS) RANGE=$(CJKBASIC) cjk

        $(MAKE) $(MFLAGS) RANGE=$(CJKEXTA)  cjk

cjk: $(SLICE)
        [ -z $(RANGE) ] && (echo must define RANGE ; exit 1) || true
        $(SLICE) $(RANGE) $(R9).bdf  > $(R9)_cjk.bdf
        $(SLICE) $(RANGE) $(R10).bdf > $(R10)_cjk.bdf
        $(SLICE) $(RANGE) $(R11).bdf > $(R11)_cjk.bdf
        $(B2P) $(R9)_cjk.bdf  > $(R9).pcf
        $(B2P) $(R10)_cjk.bdf > $(R10).pcf
        $(B2P) $(R11)_cjk.bdf > $(R11).pcf

__Pascal Bourguignon__           
You're always typing.
Well, let's see you ignore my
sitting on your hands.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]