#
# Copyright (c) 2014, 2015 Clerk Ma
#
# You may freely use, modify and/or distribute this file.
#
CAIRO=cairo-apt
CC = cl
LINK = link
RC = rc

DEFS=-DW32TeX=1 -DWIN32=1 -DKPATHSEA=1 -DNO_KPSE_DLL=1 \
-DHAVE_CONFIG_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 \
-D_CRT_SECURE_NO_WARNINGS -DCAIRO_WIN32_STATIC_BUILD=1 -wd4819

CFLAGS=-nologo -MT -O2 -GF -Gy -W3 $(DEFS) \
-I.. -I../kpathsea -I../../libs/zlib -I../ptexenc -c
DEB=

#CFLAGS=-nologo -MT -Od -Zi -W3 $(DEFS) \
#-I.. -I../kpathsea -I../../libs/zlib -I../ptexenc -c
#DEB=/DEBUG

LFLAGS=-NOLOGO -MAP -STACK:0x300000

all: aptex.exe lsotfea.exe #utf8tooct.exe

objs = \
	aptex.obj\
	aptex-cairo-visual-debug.obj \
	aptex-opentype.obj \
	aptex-unicode.obj \
	aptex-utils.obj \
	aptex-mruby.obj \
	libmd5/md5.obj \
	aptex-src.obj

headers = aptex.h aptex-functions.h \
aptex-macros.h \
aptex-cairo-visual-debug.h aptex-opentype.h \
aptex-unicode.h aptex-utils.h aptex-mruby.h


SYSLIBS = user32.lib advapi32.lib shell32.lib gdi32.lib ws2_32.lib
LSLIBS=libotf.lib ../../libs/freetype/objs/freetype.lib

aptex.exe: $(objs) ../libdpx/libdpx.lib
	$(LINK) $(LFLAGS) $(objs) \
	../ptexenc/libptexenc.lib \
	../kpathsea/libkpathsea.lib \
	../libdpx/libdpx.lib \
	../../libs/libpaper/lib/libpaper.lib \
	../../libs/libpng/libpng.lib \
	../../libs/zlib/libz.lib \
	../../libs/cairo/$(CAIRO)/src/release/cairo-static.lib \
	mruby/build/host/lib/libmruby.lib \
	$(LSLIBS) $(SYSLIBS) $(DEB)
	cp -p aptex.exe ptex-ng.exe

KPSELIB=../kpathsea/libkpathsea.lib
LSSYSLIB=user32.lib advapi32.lib shell32.lib

LSOTFEAOBJS=lsotfea.obj \
 lsotfea-ftag.obj \
 lsotfea-ltag.obj \
 lsotfea-stag.obj

lsotfea.exe: $(LSOTFEAOBJS)
	$(CC) -Fe$@ $(LSOTFEAOBJS) $(LSLIBS) $(KPSELIB) $(LSSYSLIB)

utf8tooct.exe: utf8tooct.obj
	$(CC) -Fe$@ $<

aptex.obj: aptex.c $(headers)
	$(CC) $(CFLAGS) aptex.c

NEWINC=-I../../libs/freetype/include -Ilibotf -Ilibotf/src \
-I../../libs/cairo/$(CAIRO)/src \
-Imruby/include -Ilibmd5

libmd5/md5.obj: libmd5/md5.c $(headers)
	$(CC) $(CFLAGS) $(NEWINC) -Fo$@ $<

aptex-cairo-visual-debug.obj: aptex-cairo-visual-debug.c $(headers)
	$(CC) $(CFLAGS) $(NEWINC) aptex-cairo-visual-debug.c

aptex-opentype.obj: aptex-opentype.c $(headers)
	$(CC) $(CFLAGS) $(NEWINC) aptex-opentype.c

aptex-unicode.obj: aptex-unicode.c $(headers)
	$(CC) $(CFLAGS) $(NEWINC) aptex-unicode.c

aptex-utils.obj: aptex-utils.c $(headers)
	$(CC) $(CFLAGS) $(NEWINC) aptex-utils.c

aptex-mruby.obj: aptex-mruby.c $(headers)
	$(CC) $(CFLAGS) $(NEWINC) aptex-mruby.c

aptex-src.obj: aptex-src.c $(headers)
	$(CC) $(CFLAGS) $(NEWINC) aptex-src.c

utf8tooct.obj: utf8tooct.c
	$(CC) $(CFLAGS) $<

lsotfea.obj: lsotfea-src/lsotfea.c
	$(CC) -utf-8 -wd4018 -Ilibotf/src -I../../libs/freetype/include $(CFLAGS) $<

lsotfea-ftag.obj: lsotfea-src/lsotfea-ftag.c
	$(CC) -utf-8 -wd4018 -Ilibotf/src -I../../libs/freetype/include $(CFLAGS) $<

lsotfea-ltag.obj: lsotfea-src/lsotfea-ltag.c
	$(CC) -utf-8 -wd4018 -Ilibotf/src -I../../libs/freetype/include $(CFLAGS) $<

lsotfea-stag.obj: lsotfea-src/lsotfea-stag.c
	$(CC) -utf-8 -wd4018 -Ilibotf/src -I../../libs/freetype/include $(CFLAGS) $<

.SUFFIXES:
.SUFFIXES: .obj .c

%.obj:%.c
	$(CC) $(CFLAGS) -c $<

DISTDIR=c:/usr/work/edrive/wk/dist/PTEXNG/bin
install: ptex-ng.exe lsotfea.exe
	cp -p ptex-ng.exe lsotfea.exe c:/usr/local/txdir/w32tex/bin/
	cp -p ptex-ng.exe lsotfea.exe $(DISTDIR)/

clean::
	rm -f *~ *.obj *.map aptex.exe lsotfea.exe ptex-ng.exe
	rm -f libmd5/*.obj
