OPTFLAGS=-g include config.mak .SUFFIXES: .c .o .E .pico gcin_tsin_o = tsin.o tsin-util.o win0.o win1.o tsin-parse.o gcin_pho_o = win-pho.o pho.o pho-util.o pho-sym.o table-update.o pho-dbg.o gcin_gtab_o = gtab.o win-gtab.o gtab-util.o gtab-list.o GCIN_SO= gcin1.so OBJS=gcin.o eve.o util.o gcin-conf.o gcin-settings.o locale.o gcin-icon.o \ gcin-switch.o gcin-exec-script.o $(GCIN_SO) pho-play.o \ $(gcin_pho_o) $(gcin_gtab_o) gcin-common.o OBJS_TSLEARN=tslearn.o util.o gcin-conf.o pho-util.o tsin-util.o gcin-send.o pho-sym.o \ table-update.o locale.o gcin-settings.o gcin-common.o OBJS_JUYIN_LEARN=juyin-learn.o locale.o util.o pho-util.o pho-sym.o \ gcin-settings.o gcin-conf.o table-update.o pinyin.o OBJS_sim2trad=sim2trad.o util.o OBJS_phod2a=phod2a.o pho-util.o gcin-conf.o pho-sym.o table-update.o pho-dbg.o locale.o \ gcin-settings.o util.o OBJS_tsa2d32=tsa2d32.o gcin-send.o util.o pho-sym.o gcin-conf.o locale.o pho-lookup.o OBJS_phoa2d=phoa2d.o pho-sym.o gcin-send.o gcin-conf.o locale.o pho-lookup.o OBJS_kbmcv=kbmcv.o pho-sym.o util.o locale.o OBJS_tsd2a=tsd2a.o pho-sym.o pho-dbg.o locale.o util.o OBJS_tsd2a32=tsd2a32.o pho-sym.o pho-dbg.o locale.o util.o OBJS_gcin2tab=gcin2tab.o gtab-util.o util.o locale.o OBJS_gtab_merge=gtab-merge.o gtab-util.o util.o locale.o OBJS_gcin_steup=gcin-setup.o gcin-conf.o util.o gcin-send.o gcin-settings.o \ gcin-setup-list.o gcin-switch.o locale.o gcin-setup-pho.o about.o \ gcin-icon.o gcin-setup-gtab.o gtab-list.o gcin-exec-script.o OBJS_gcin_setup_tab=gcin-setup-tab.o gcin-conf.o util.o gcin-send.o gcin-settings.o \ gcin-switch.o about.o gcin-icon.o gtab-list.o gcin-exec-script.o OBJS_gcin_gb_toggle = gcin-gb-toggle.o gcin-conf.o util.o gcin-send.o OBJS_gcin_message = gcin-message.o gcin-conf.o util.o gcin-send.o OBJS_pin_juyin = pin-juyin.o util.o pho-lookup.o locale.o pho-sym.o #WALL=-Wall CFLAGS= $(WALL) $(OPTFLAGS) $(GTKINC) -I./IMdkit/include -DDEBUG="0$(GCIN_DEBUG)" \ -DGCIN_TABLE_DIR=\"$(GCIN_TABLE_DIR)\" \ -DGCIN_OGG_DIR=\"$(GCIN_OGG_DIR)\" \ -DDOC_DIR=\"$(DOC_DIR)\" \ -DGCIN_ICON_DIR=\"$(GCIN_ICON_DIR)\" -DGCIN_VERSION=\"$(GCIN_VERSION)\" \ -DGCIN_SCRIPT_DIR=\"$(GCIN_SCRIPT_DIR)\" -DGCIN_BIN_DIR=\"$(GCIN_BIN_DIR)\" \ -DSYS_ICON_DIR=\"$(SYS_ICON_DIR)\" -DFREEBSD=$(FREEBSD) -DMAC_OS=$(MAC_OS) ifeq ($(USE_XIM),Y) IMdkitLIB = IMdkit/lib/libXimd.a CFLAGS += -DUSE_XIM=1 OBJS+=IC.o endif ifeq ($(MAC_OS),1) EXTRA_LDFLAGS=-bind_at_load endif ifeq ($(USE_TRAY),Y) CFLAGS += -DTRAY_ENABLED=1 OBJS += tray.o eggtrayicon.o endif ifeq ($(USE_I18N),Y) CFLAGS += -DGCIN_i18n_message=1 endif ifeq ($(USE_TSIN),Y) CFLAGS += -DUSE_TSIN=1 OBJS += $(gcin_tsin_o) endif im-srv = im-srv/im-srv.a .c.E: $(CC) $(CFLAGS) -E -o $@ $< .c.pico: $(CC) $(CFLAGS) -c -fpic -o $@ $< PROGS=gcin tsd2a tsd2a32 tsa2d32 phoa2d phod2a tslearn gcin-setup gcin2tab \ juyin-learn sim2trad gcin-gb-toggle gcin-message gtab-merge gcin-setup-tab PROGS_SYM=trad2sim PROGS_CV=kbmcv pin-juyin all: $(PROGS) trad2sim $(DATA) $(PROGS_CV) gcin.spec $(MAKE) -C data $(MAKE) -C im-client $(MAKE) -C gtk-im ifeq ($(USE_I18N),Y) $(MAKE) -C po endif if [ $(QT_IM) = 'Y' ]; then $(MAKE) -C qt-im; fi gcin: $(OBJS) $(IMdkitLIB) $(im-srv) LD_RUN_PATH=.:$(gcinlibdir) \ $(CC) $(EXTRA_LDFLAGS) -o $@ $(OBJS) $(IMdkitLIB) $(im-srv) -lXtst $(LDFLAGS) -L/usr/X11R6/lib rm -f core.* ln -sf $@ $@.test tslearn: $(OBJS_TSLEARN) $(CC) -o $@ $(OBJS_TSLEARN) $(LDFLAGS) juyin-learn: $(OBJS_JUYIN_LEARN) $(CC) -o $@ $(OBJS_JUYIN_LEARN) $(LDFLAGS) rm -f core.* sim2trad: $(OBJS_sim2trad) $(CC) -o $@ $(OBJS_sim2trad) $(LDFLAGS) rm -f core.* trad2sim: sim2trad ln -sf sim2trad trad2sim gcin-setup: $(OBJS_gcin_steup) rm -f core.* $(CC) -o $@ $(OBJS_gcin_steup) $(LDFLAGS) gcin-setup-tab: $(OBJS_gcin_setup_tab) rm -f core.* $(CC) -o $@ $(OBJS_gcin_setup_tab) $(LDFLAGS) phoa2d: $(OBJS_phoa2d) $(CC) -o $@ $(OBJS_phoa2d) $(LDFLAGS) phod2a: $(OBJS_phod2a) $(CC) -o $@ $(OBJS_phod2a) $(LDFLAGS) tsa2d: $(OBJS_tsa2d) $(CC) -o $@ $(OBJS_tsa2d) $(LDFLAGS) tsa2d32: $(OBJS_tsa2d32) $(CC) -o $@ $(OBJS_tsa2d32) $(LDFLAGS) tsd2a: $(OBJS_tsd2a) $(CC) -o $@ $(OBJS_tsd2a) $(LDFLAGS) tsd2a32: $(OBJS_tsd2a32) $(CC) -o $@ $(OBJS_tsd2a32) $(LDFLAGS) gcin2tab: $(OBJS_gcin2tab) $(CC) -o $@ $(OBJS_gcin2tab) $(LDFLAGS) rm -f data/*.gtab gtab-merge: $(OBJS_gtab_merge) $(CC) -o $@ $(OBJS_gtab_merge) $(LDFLAGS) kbmcv: $(OBJS_kbmcv) $(CC) -o $@ $(OBJS_kbmcv) $(LDFLAGS) gcin-gb-toggle: $(OBJS_gcin_gb_toggle) $(CC) -o $@ $(OBJS_gcin_gb_toggle) $(LDFLAGS) gcin-message: $(OBJS_gcin_message) $(CC) -o $@ $(OBJS_gcin_message) $(LDFLAGS) pin-juyin: $(OBJS_pin_juyin) $(CC) -o $@ $(OBJS_pin_juyin) $(LDFLAGS) gcin1_so= intcode.pico win-int.pico win-message.pico phrase.pico win-sym.pico win-inmd-switch.pico pinyin.pico win-pho-near.pico gcin1.so: $(gcin1_so) $(CC) $(SO_FLAGS) -o $@ $(gcin1_so) $(LDFLAGS) ### making the following as .so actuall makes the RSS larger gcin_gtab_so = gtab.pico win-gtab.pico gtab-util.pico gcin-gtab.so: $(gcin_gtab_so) $(CC) $(SO_FLAGS) -o $@ $(gcin_gtab_so) $(LDFLAGS) gcin_tsin_so = tsin.pico tsin-util.pico win0.pico win1.pico win-pho-near.pico tsin-parse.pico gcin-tsin.so: $(gcin_tsin_so) $(CC) -shared -o $@ $(gcin_tsin_so) $(LDFLAGS) gcin_pho_so=win-pho.pico pho.pico pho-util.pico pho-sym.pico table-update.pico pho-dbg.pico gcin-pho.so: $(gcin_pho_so) $(CC) -shared -fPIC -o $@ $(gcin_pho_so) $(LDFLAGS) $(IMdkitLIB): $(MAKE) -C IMdkit/lib $(im-srv): $(MAKE) -C im-srv ibin: install $(PROGS) $(bindir); \ rm -f $(bindir)/trad2sim; ln -sf sim2trad $(bindir)/trad2sim install $(GCIN_SO) $(gcinlibdir) install: install -d $(datadir)/icons install gcin.png $(datadir)/icons $(MAKE) -C icons install install -d $(gcinlibdir) install $(GCIN_SO) $(gcinlibdir) install -d $(bindir) $(MAKE) -C data install $(MAKE) -C im-client install $(MAKE) -C gtk-im install if [ $(QT_IM) = 'Y' ]; then $(MAKE) -C qt-im install; fi if [ $(prefix) = /usr/local ]; then \ install -m 644 gcin.png $(prefix)/share/icons; \ install -d $(DOC_DIR); \ install -m 644 README Changelog $(DOC_DIR); \ install $(PROGS) $(bindir); \ rm -f $(bindir)/trad2sim; ln -sf sim2trad $(bindir)/trad2sim; \ else \ install -d $(DOC_DIR_i); \ install -m 644 README Changelog $(DOC_DIR_i); \ install -s $(PROGS) $(bindir); \ rm -f $(bindir)/trad2sim; ln -sf sim2trad $(bindir)/trad2sim; \ fi $(MAKE) -C scripts install $(MAKE) -C menu install $(MAKE) -C man install ifeq ($(USE_I18N),Y) $(MAKE) -C po install endif clean: $(MAKE) -C IMdkit clean $(MAKE) -C data clean $(MAKE) -C scripts clean $(MAKE) -C im-srv clean $(MAKE) -C im-client clean $(MAKE) -C gtk-im clean $(MAKE) -C qt-im clean $(MAKE) -C man clean $(MAKE) -C menu clean $(MAKE) -C po clean rm -f *.o *.E *.db *.pico *.so config.mak tags $(PROGS) $(PROGS_CV) \ $(DATA) .depend gcin.spec trad2sim gcin.spec.tmp gcin.log find . '(' -name '.ted*' -o -name '*~' -o -name 'core.*' -o -name 'vgcore.*' ')' -exec rm {} \; .depend: $(CC) $(CFLAGS) -MM *.c > $@ config.mak: VERSION.gcin configure ./configure gcin.spec: gcin.spec.in rm -f $@ sed -e "s/__gcin_version__/$(GCIN_VERSION)/" < $< > $@ include .depend