SUBDIRS = cct ctex addr2tex CCTfntef ccmap
dist = cct-0.618-6

WINE = "/usr/bin/wine"
ISCC = "C:\\Program Files\\Inno Setup 4\\ISCC.exe"
#ISCC = "ISCC.exe"	# Inno Setup directory must be in the PATH
NSIS = "C:\\Program Files\\NSIS\\makensis.exe"

prefix		   = /usr/local
install_root	   = /

prefix_win32	   = "C:\\CTeX"
install_root_win32 = /tmp

all:
	@for d in $(SUBDIRS); do test -d $$d || continue; \
	  (cd $$d; make prefix=$(prefix) all) || exit 1; \
	done

install:
	@for d in $(SUBDIRS); do test -d $$d || continue; \
	    (	cd $$d; \
		make prefix=$(prefix) install_root=$(install_root) install \
	    ) || exit 1; \
	done
	@echo 1>&2 "Installing docs ..."
	@mkdir -p $(install_root)$(prefix)/share/doc/cct
	@/bin/cp -pf README.tex cctdiag.eps CCTLaTeX.tex Changelog \
		NewCCT-HOWTO.txt $(install_root)$(prefix)/share/doc/cct/.
	@echo 1>&2 "Installing scripts ..."
	@/bin/cp -pf Linux/eps2pdf Linux/GBKpunct $(install_root)$(prefix)/bin/.
	@for s in xdvic dvipsc; do \
	    sed -e 's!@CCPKPATH@!$(prefix)/share/texmf/fonts/cct/pk!g' \
		-e 's!@CCHZPATH@!$(prefix)/share/texmf/fonts/cct/hzfonts!g' \
		Linux/$${s}.in >$(install_root)$(prefix)/bin/$$s; \
	    chmod 0755 $(install_root)$(prefix)/bin/$$s; \
	done
	@echo 1>&2 "Installing gbk*.tbl files ..."
	@/bin/cp -pf Linux/*.tbl $(install_root)$(prefix)/share/texmf/tex/cct/.
	@echo 1>&2 "Done"

# --- change '\' to '/', strip leading 'drive:' part
prefix_win32_ = `echo $(prefix_win32) | sed -e 's/\\\\/\\//g' -e 's/^.*://g'`
CTeX_dir = "$(install_root_win32)$(prefix_win32_)"
w32localtexmf = $(CTeX_dir)/localtexmf
install_win32:
	@[ "$(CTeX_dir)" != "/" ] && /bin/rm -rf $(CTeX_dir)
	@for d in $(SUBDIRS); do test -d $$d || continue; \
	    echo 1>&2 "Installing in $$@d ..."; \
	    (cd $$d; make install_root_win32=$(install_root_win32) \
		prefix=$(prefix_win32) install_win32) || exit 1; \
	done

	@echo 1>&2 "Installing in $(w32localtexmf)/cct/doc ..."
	@mkdir -p $(w32localtexmf)/cct/doc
	@/bin/cp -pf Changelog cctdiag.eps NewCCT-HOWTO.txt \
		README.tex CCTLaTeX.tex $(w32localtexmf)/cct/doc/.
	@#ctex -dvipdfmx README
	@#ctex -dvipdfmx CCTLaTeX
	@#/bin/cp -pf README.pdf CCTLaTeX.pdf $(w32localtexmf)/cct/doc/.

	@#echo 1>&2 "Installing $(dist).tar.bz2 in" $(w32localtexmf)/cct/src/
	@#mkdir -p $(w32localtexmf)/cct/src
	@#make -s clean
	@#(d=$${PWD##*/}; cd ..; \
	#	tar cjpf $(w32localtexmf)/cct/src/$(dist).tar.bz2 $$d)

	@echo 1>&2 "Building WIN32 installer in $(CTeX_dir) ..."
	@mkdir -p $(w32localtexmf)/cct/bin
	@mkdir -p $(w32localtexmf)/miktex/config
	@i386-mingw32-gcc -Wall -o $(w32localtexmf)/cct/bin/addtocfg.exe \
		Windows/addtocfg.c
	@/bin/cp -f Windows/cct-updt.bat $(w32localtexmf)/cct/bin/.

	@/bin/cp -f Windows/CTeX-update.iss Windows/CTeX-update-readme*.txt \
		Windows/ChineseSimp-7-4.1.8.isl $(CTeX_dir)/.
	@/bin/cp -f Windows/CTeX-update.nsi Windows/CTeX-update.ico \
		$(CTeX_dir)/.
	@if [ ! -x $(WINE) ]; then \
	    echo 1>&2 "Can't execute $(WINE), abort."; \
	    exit 1; \
	else \
	    true env LANG=zh_CN $(WINE) $(ISCC) $(CTeX_dir)/CTeX-update.iss;\
	    (cd $(CTeX_dir);\
	     env LANG=zh_CN $(WINE) $(NSIS) CTeX-update.nsi);\
	fi

	@echo 1>&2 "Done"

clean:
	@/bin/rm -f *.dvi *.aux *.toc *.log *.pdf *.ps *.o ctextemp_*
	@for d in $(SUBDIRS); do test -d $$d || continue; \
	    echo 1>&2 "Cleaning $$d ..."; \
	    (cd $$d; make -s clean) || exit 1; \
	done
