# $Id: Makefile,v 1.3 2005/06/28 14:02:48 zlb Exp $

#---- For Linux/GCC (-DSTDC_HEADERS is required for md5.c)
CC=gcc
CFLAGS=-DUNIX -Wall -O2 -g -DSTDC_HEADERS=1 -DUSE_KPSE $(EXTRA_CFLAGS) #-DDEBUG
LIBS=-lkpathsea
####CFLAGS=-DCTEX_VERSION=\"$(CTEX_VERSION)\" -DUNIX -Wall -O2 -g #-DDEBUG

#---- SGI IRIX 5.3, gcc
#CC=gcc
#CFLAGS=-DUNIX -Wall -O2 -DSTDC_HEADERS=1 -DUSE_KPSE -DTEX_OPTS=\"\" \
#	-DCP_CMD=\"/bin/cp\" -DUSE_GLOB=0 -I/usr/local/include/kpathsea
#LIBS=-lkpathsea

#---- For DOS/DJGPP
DOS_CC=dos-gcc
DOS_CFLAGS=-DMIKTEX -Wall -O2 -g -DSTDC_HEADERS=1 #-DDEBUG
DOS_LIBS=
####DOS_CFLAGS=-DCTEX_VERSION=\\\"$(CTEX_VERSION)\\\" -DMIKTEX -Wall -O2 -g

#--- For WIN32/MingW32
W32_CC=i386-mingw32-gcc
W32_CFLAGS=-DMIKTEX -Wall -O2 -g -DSTDC_HEADERS=1 #-DDEBUG
W32_LIBS=

#-------------
prefix = /usr/local
install_root = /

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

ALL = ctex patchchk

default: $(ALL)
all: default

FILES = Changelog common.h ctex.c ctex.dsp ctex.dsw ctexscan.c ctexscan.dia \
	dvi.c Makefile md5.c md5.h md5test.c patchchk.c .cvsignore
ctex.zip: $(FILES)
	@zip -9 -u -y $@ $^

clean:
	rm -rf *.o *.dvi *.log *.aux *.pdf *.idx *.ind *.lof *.out *.ps *.bak \
		ctextemp.dir ctextemp_* *.exe $(ALL)

install: ctex patchchk
	@mkdir -p $(install_root)$(prefix)/bin
	@echo 1>&2 "Installing binaries in $(install_root)$(prefix)/bin/"
	@strip ctex patchchk
	@/bin/cp -pf ctex patchchk $(install_root)$(prefix)/bin
	@( cd $(install_root)$(prefix)/bin; \
	  ln -sf ctex ccttex; \
	  for f in cctpdftex cctlatex cctamstex cctpdflatex; \
	  do ln -sf ccttex $$f; done )

# --- change '\' to '/', strip leading 'drive:' part
prefix_win32_ = `echo $(prefix_win32) | sed -e 's/\\\\/\\//g' -e 's/^.*://g'`
w32localtexmf = $(install_root_win32)$(prefix_win32_)/localtexmf
w32texmf      = $(install_root_win32)$(prefix_win32_)/texmf
install_win32:
	@echo 1>&2 "Building WIN32 distribution ..."
	@echo 1>&2 "Compiling WIN32 binaries ..."
	@make prefix=$(prefix_win32) win32

	@echo 1>&2 "Installing in $(w32localtexmf)/cct/bin/ ..."
	@mkdir -p $(w32localtexmf)/cct/bin
	@/bin/cp -pf ctex.exe patchchk.exe $(w32localtexmf)/cct/bin

	@#echo 1>&2 "Installing in $(w32localtexmf)/cct/src/ ..."
	@#mkdir -p $(w32localtexmf)/cct/src/
	@#/bin/cp -af `pwd` $(w32localtexmf)/cct/src/.
	@#(cd $(w32localtexmf)/cct/src/$${PWD##*/}; make -s clean)

dos:
	@#make -s clean
	@make CC="$(DOS_CC)" CFLAGS="$(DOS_CFLAGS)" LIBS="$(DOS_LIBS)" \
		prefix=$(prefix) ctex patchchk
	@rm -f ctex patchchk
	@dos-strip ctex.exe patchchk.exe

win32: 
	@#make -s clean
	@make CC="$(W32_CC)" CFLAGS="$(W32_CFLAGS)" LIBS="$(W32_LIBS)" \
		prefix=$(prefix) ctex patchchk
	@mv ctex ctex.exe
	@i386-mingw32-strip ctex.exe
	@mv patchchk patchchk.exe
	@i386-mingw32-strip patchchk.exe

ctex: ctex.o ctexscan.o patchchk.o md5.o dvi.o
	$(CC) $(CFLAGS) -o $@ $^ $(LIBS)

patchchk: patchchk.c
	${CC} ${CFLAGS} -DTEST -o $@ $^

.c.o:
	$(CC) $(CFLAGS) -c $*.c

ctex.o: common.h
ctexscan.o: common.h
patchchk.o: common.h
