| # This Makefile will allow you to build the static library, a DLL, the | |
| # DLL-import library, and the test executables using the "mingw" gcc | |
| # compiler environment. This Makefile is based on Alfred Reibenschuh's | |
| # version for 2.1.1, and was modified by Wayne Davison. | |
| # Set "PREFIX" to the root of the mingw installed files. | |
| PREFIX = /mingw | |
| CC=gcc | |
| CFLAGS=-O -Iinclude -I$(PREFIX)/include -D_WINSOCKAPI_ -fnative-struct | |
| LDFLAGS=-L. -L$(PREFIX)/lib | |
| LIBS=-lwsock32 -lz | |
| AR=ar rc | |
| DLLTOOL=dlltool | |
| DLLWRAP=dllwrap | |
| LIBSRCS=HTMLparser.c \ | |
| HTMLtree.c \ | |
| SAX.c \ | |
| debugXML.c \ | |
| encoding.c \ | |
| entities.c \ | |
| error.c \ | |
| nanoftp.c \ | |
| nanohttp.c \ | |
| parser.c \ | |
| parserInternals.c \ | |
| tree.c \ | |
| valid.c \ | |
| xlink.c \ | |
| xmlIO.c \ | |
| xmlmemory.c \ | |
| xpath.c \ | |
| xpointer.c \ | |
| hash.c \ | |
| uri.c | |
| LIBOBJS=$(LIBSRCS:.c=.o) | |
| OBJS=$(LIBOBJS) | |
| LIBBASE=xml | |
| LIB=lib$(LIBBASE).a | |
| DLL=$(LIB:.a=.dll) | |
| OBJ1=testHTML.o | |
| OBJ2=testSAX.o | |
| OBJ3=testURI.o | |
| EXE1=$(OBJ1:.o=.exe) | |
| EXE2=$(OBJ2:.o=.exe) | |
| EXE3=$(OBJ3:.o=.exe) | |
| IMPBASE=$(LIBBASE)_dll | |
| IMP=lib$(IMPBASE).a | |
| DEF=$(DLL:.dll=.def) | |
| all: $(LIB) $(DLL) $(DEF) $(IMP) $(EXE1) $(EXE2) $(EXE3) | |
| dll: $(DLL) | |
| lib: $(LIB) | |
| $(DLL): $(LIB) $(DEF) $(IMP) | |
| $(DLLWRAP) --def $(DEF) --dllname $@ --output-lib $@ $(LIB) $(LDFLAGS) $(LIBS) -mwindows | |
| $(LIB): $(LIBOBJS) | |
| $(AR) $@ $^ | |
| $(DEF): $(LIBOBJS) | |
| $(DLLTOOL) --kill-at --export-all -D $(DLL) --output-def $@ $^ | |
| $(IMP): $(DEF) | |
| $(DLLTOOL) -d $< -l $@ -D $(DLL) | |
| $(EXE1): $(OBJ1) $(LIBOBJS) $(DLL) | |
| $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(IMPBASE) $(LIBS) | |
| strip $@ | |
| $(EXE2): $(OBJ2) $(LIBOBJS) $(DLL) | |
| $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(IMPBASE) $(LIBS) | |
| strip $@ | |
| $(EXE3): $(OBJ3) $(LIBOBJS) $(LIB) | |
| $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(LIBBASE) $(LIBS) | |
| strip $@ | |
| .c.o: | |
| $(CC) $(CFLAGS) -c $< -o $@ | |
| clean: | |
| rm *.o *.a *.dll *.def | |
| test: all | |
| ./$(EXE1) -c $(OBJS) | xxd | head -3 |