CC=gcc
OMF=no
# If you know what your system's byte order is, define XML_BYTE_ORDER:
# use -DXML_BYTE_ORDER=12 for little-endian byte order;
# use -DXML_BYTE_ORDER=21 for big-endian (network) byte order.
# -DXML_NS adds support for checking of lexical aspects of XML namespaces spec
# -DXML_MIN_SIZE makes a smaller but slower parser
# -DXML_DTD adds full support for parsing DTDs


CFLAGS=-Wall -O2 -Ixmltok -Ixmlparse -DXML_NS -DXML_DTD -D__ST_MT_ERROR__

ARFLAGS=crs
ifeq ($(OMF),yes)
  O = .obj
  A = .lib
  AR = emxomfar
  CFLAGS += -Zomf
  ARFLAGS = -p32 crs
else
  O = .o
  A = .a
  AR = ar
endif


# Use one of the next two lines; unixfilemap is better if it works.
#FILEMAP_OBJ=xmlwf/unixfilemap$O
FILEMAP_OBJ=xmlwf/readfilemap$O

LIBOBJS=xmltok/xmltok$O xmltok/xmlrole$O xmlparse/xmlparse$O
OBJS=xmlwf/xmlfile$O xmlwf/codepage$O $(FILEMAP_OBJ)
LIB=lib/expat$A

EXE=.exe
XMLWF=xmlwf/xmlwf$(EXE)

%$O: %.c
	$(CC) $(CFLAGS) -c -o $@ $<

%$(EXE):
	$(CC) $(CFLAGS) -o $@ $^

all: $(XMLWF)

$(XMLWF): xmlwf/xmlwf.c $(OBJS) $(LIB)

$(LIB): $(LIBOBJS)
	$(AR) $(ARFLAGS) $@ $^

clean:
	rm -f $(OBJS) $(LIBOBJS) $(LIB) $(XMLWF)

gennmtab/gennmtab$(EXE): gennmtab/gennmtab.c

xmltok/nametab.h: gennmtab/gennmtab$(EXE)
	rm -f $@
	gennmtab\gennmtab$(EXE) >$@

xmltok/xmltok$O: xmltok/xmltok.c xmltok/nametab.h
	$(CC) $(CFLAGS) -c -o $@ $<
