1# 2# Makefile for AmigaOS 3# 4 5.PHONY: help all staticlib sharedlib check clean install 6 7vpath %.c ../lib ../examples ../xmlwf ../tests 8vpath %.h ../lib ../tests 9 10 11# 12# Set these for SDK installation. 13# 14tooldir = SDK:Local/C 15staticlibdir = SDK:Local/clib2/lib 16staticincludedir = SDK:Local/clib2/include 17sharedlibdir = SDK:Local/Libs 18sharedincludedir = SDK:Local/common/include 19 20 21ifeq ($(MAKECMDGOALS), staticlib) 22 DESTDIR = lib 23else 24 DESTDIR = libs 25endif 26 27STATICLIB = $(DESTDIR)/libexpat.a 28SHAREDLIB = $(DESTDIR)/expat.library 29 30XMLWF = $(DESTDIR)/xmlwf 31ELEMENTS = $(DESTDIR)/elements 32OUTLINE = $(DESTDIR)/outline 33RUNTESTS = $(DESTDIR)/runtests 34BENCHMARK = $(DESTDIR)/benchmark 35 36 37help: 38 @echo "Requires:" 39 @echo " AmigaOS 4.0" 40 @echo " SDK 51.22" 41 @echo " clib2 1.202" 42 @echo "" 43 @echo "Targets:" 44 @echo " all - make expat libraries, xmlwf, examples and run test suite" 45 @echo " install - install expat libraries and tools into SDK" 46 47all: 48 -makedir force lib libs 49 $(MAKE) staticlib 50 $(MAKE) sharedlib 51 52staticlib: $(STATICLIB) $(XMLWF) $(ELEMENTS) $(OUTLINE) $(RUNTESTS) $(BENCHMARK) check 53 @echo done 54 55sharedlib: $(SHAREDLIB) $(XMLWF) $(ELEMENTS) $(OUTLINE) $(RUNTESTS) $(BENCHMARK) check 56 @echo done 57 58check: 59 $(RUNTESTS) 60 61clean: 62 -delete lib/#?.o quiet 63 -delete libs/#?.o quiet 64 65install: 66 copy libs/xmlwf $(tooldir) quiet 67 copy /lib/expat.h /lib/expat_external.h $(staticincludedir) quiet 68 copy lib/libexpat.a $(staticlibdir) quiet 69 copy libs/expat.library $(sharedlibdir) quiet 70 copy include $(sharedincludedir) quiet all 71 72 73CC = gcc 74LIBTOOL = ar 75STRIP = strip 76 77LDFLAGS = 78LIBS = 79CFLAGS = -DNDEBUG -O2 80LTFLAGS = -crs 81STRIPFLAGS = -R.comment 82LAUNCH = 83 84ifeq ($(MAKECMDGOALS), staticlib) 85 CFLAGS += -mcrt=clib2 86 LDFLAGS += -mcrt=clib2 87 LIBS += $(STATICLIB) 88 INCLUDES = -I../lib 89endif 90 91ifeq ($(MAKECMDGOALS), sharedlib) 92 CFLAGS += -mcrt=newlib -D__USE_INLINE__ 93 LDFLAGS += -mcrt=newlib 94 INCLUDES = -I. -Iinclude -Iinclude/libraries -I../lib 95 LAUNCH = $(DESTDIR)/launch.o 96endif 97 98 99COMPILE = $(CC) $(CFLAGS) $(INCLUDES) -c 100 101LINK = $(CC) $(LDFLAGS) -o $@ 102 103 104$(STATICLIB): $(DESTDIR)/xmlparse.o $(DESTDIR)/xmltok.o $(DESTDIR)/xmlrole.o 105 $(LIBTOOL) $(LTFLAGS) $@ $^ 106 107$(DESTDIR)/xmlparse.o: xmlparse.c expat.h xmlrole.h xmltok.h \ 108 expat_external.h internal.h amigaconfig.h 109 $(COMPILE) $< -o $@ 110 111$(DESTDIR)/xmlrole.o: xmlrole.c ascii.h xmlrole.h expat_external.h \ 112 internal.h amigaconfig.h 113 $(COMPILE) $< -o $@ 114 115$(DESTDIR)/xmltok.o: xmltok.c xmltok_impl.c xmltok_ns.c ascii.h asciitab.h \ 116 iasciitab.h latin1tab.h nametab.h utf8tab.h xmltok.h xmltok_impl.h \ 117 expat_external.h internal.h amigaconfig.h 118 $(COMPILE) $< -o $@ 119 120 121$(SHAREDLIB): $(DESTDIR)/expat_lib.o $(DESTDIR)/expat_vectors.o $(DESTDIR)/stdlib.o lib/libexpat.a 122 $(LINK) -nostartfiles -nostdlib -o $@ $^ 123 124$(DESTDIR)/expat_lib.o: expat_lib.c 125 $(COMPILE) $< -o $@ 126 127$(DESTDIR)/expat_vectors.o: expat_vectors.c 128 $(COMPILE) $< -o $@ 129 130$(DESTDIR)/stdlib.o: stdlib.c 131 $(COMPILE) $< -o $@ 132 133$(LAUNCH): launch.c 134 $(COMPILE) $< -o $@ 135 136 137$(XMLWF): $(DESTDIR)/xmlwf.o $(DESTDIR)/xmlfile.o $(DESTDIR)/codepage.o $(DESTDIR)/readfilemap.o $(LAUNCH) 138 $(LINK) $^ $(LIBS) 139 $(STRIP) $(STRIPFLAGS) $@ 140 141$(DESTDIR)/xmlwf.o: xmlwf.c 142 $(COMPILE) $< -o $@ 143 144$(DESTDIR)/xmlfile.o: xmlfile.c 145 $(COMPILE) $< -o $@ 146 147$(DESTDIR)/codepage.o: codepage.c 148 $(COMPILE) $< -o $@ 149 150$(DESTDIR)/readfilemap.o: readfilemap.c 151 $(COMPILE) $< -o $@ 152 153 154$(ELEMENTS): $(DESTDIR)/elements.o $(LAUNCH) 155 $(LINK) $^ $(LIBS) 156 $(STRIP) $(STRIPFLAGS) $@ 157 158$(DESTDIR)/elements.o: elements.c 159 $(COMPILE) $< -o $@ 160 161 162$(OUTLINE): $(DESTDIR)/outline.o $(LAUNCH) 163 $(LINK) $^ $(LIBS) 164 $(STRIP) $(STRIPFLAGS) $@ 165 166$(DESTDIR)/outline.o: outline.c 167 $(COMPILE) $< -o $@ 168 169 170$(RUNTESTS): $(DESTDIR)/runtests.o $(DESTDIR)/chardata.o $(DESTDIR)/minicheck.o $(LAUNCH) 171 $(LINK) $^ $(LIBS) 172 173$(DESTDIR)/chardata.o: chardata.c chardata.h 174 $(COMPILE) $< -o $@ 175 176$(DESTDIR)/minicheck.o: minicheck.c minicheck.h 177 $(COMPILE) $< -o $@ 178 179$(DESTDIR)/runtests.o: runtests.c chardata.h 180 $(COMPILE) $< -o $@ 181 182 183$(BENCHMARK): $(DESTDIR)/benchmark.o $(LAUNCH) 184 $(LINK) $^ $(LIBS) -lm 185 186$(DESTDIR)/benchmark.o: benchmark/benchmark.c 187 $(COMPILE) $< -o $@ 188