"FangQ" <[EMAIL PROTECTED]> 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 > 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.
What I do: cjk0: $(MAKE) $(MFLAGS) RANGE=$(CJKBASIC) cjk cjka: $(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__ http://www.informatimago.com/ You're always typing. Well, let's see you ignore my sitting on your hands. _______________________________________________ help-gnu-utils mailing list help-gnu-utils@gnu.org http://lists.gnu.org/mailman/listinfo/help-gnu-utils