how to do this with Makefile

"FangQ" <[email protected]>
Newsgroups gmane.comp.gnu.utils
Organization http://groups.google.com
Message-ID <[email protected]>
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
SLICE=bdfmerge.pl

CJKBASIC=0x4E00--0x9FA5
CJKEXTA=0x3400--0x4DB5
CJK1=0x1100--0x11FF 0x2460--0x24EA
CJK2=0x2605--0x2606 0x262F--0x2637
CJK3=0x3105--0x312C 0x3131--0x318E

RANGE=$(CJKBASIC) $(CJKEXTA) $(CJK1) $(CJK2) $(CJK3)

cjk0: RANGE=$(CJKBASIC)
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.

thank you

Qianqian
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.