--- embedaddon/expat/amiga/Makefile 2012/02/21 23:00:54 1.1.1.1 +++ embedaddon/expat/amiga/Makefile 2014/06/15 16:09:43 1.1.1.2 @@ -2,186 +2,335 @@ # Makefile for AmigaOS # -.PHONY: help all staticlib sharedlib check clean install +.PHONY: help all check clean package +.PHONY: clib2 newlib library so -vpath %.c ../lib ../examples ../xmlwf ../tests +vpath %.c ../lib ../examples ../xmlwf ../tests ../tests/benchmark vpath %.h ../lib ../tests +############################################################################# -# -# Set these for SDK installation. -# -tooldir = SDK:Local/C -staticlibdir = SDK:Local/clib2/lib -staticincludedir = SDK:Local/clib2/include -sharedlibdir = SDK:Local/Libs -sharedincludedir = SDK:Local/common/include - - -ifeq ($(MAKECMDGOALS), staticlib) - DESTDIR = lib -else - DESTDIR = libs -endif - -STATICLIB = $(DESTDIR)/libexpat.a -SHAREDLIB = $(DESTDIR)/expat.library - -XMLWF = $(DESTDIR)/xmlwf -ELEMENTS = $(DESTDIR)/elements -OUTLINE = $(DESTDIR)/outline -RUNTESTS = $(DESTDIR)/runtests -BENCHMARK = $(DESTDIR)/benchmark - - help: @echo "Requires:" - @echo " AmigaOS 4.0" - @echo " SDK 51.22" - @echo " clib2 1.202" + @echo " AmigaOS 4.x" + @echo " SDK 53.13" @echo "" @echo "Targets:" - @echo " all - make expat libraries, xmlwf, examples and run test suite" + @echo " all - make libraries, xmlwf, examples and runs tests" @echo " install - install expat libraries and tools into SDK" + @echo " clean - clean object files" + @echo " check - run all the tests" + @echo " package - prepare distribution archive" -all: - -makedir force lib libs - $(MAKE) staticlib - $(MAKE) sharedlib +all: clib2 newlib library so check -staticlib: $(STATICLIB) $(XMLWF) $(ELEMENTS) $(OUTLINE) $(RUNTESTS) $(BENCHMARK) check - @echo done +clib2: clib2/libexpat.a clib2/xmlwf clib2/elements clib2/outline clib2/runtests clib2/benchmark -sharedlib: $(SHAREDLIB) $(XMLWF) $(ELEMENTS) $(OUTLINE) $(RUNTESTS) $(BENCHMARK) check - @echo done +newlib: newlib/libexpat.a newlib/xmlwf newlib/elements newlib/outline newlib/runtests newlib/benchmark -check: - $(RUNTESTS) +library: libs/expat.library libs/xmlwf libs/elements libs/outline libs/runtests libs/benchmark +so: so/libexpat.so so/xmlwf so/elements so/outline so/runtests so/benchmark + +check: clib2/runtests newlib/runtests libs/runtests so/runtests + clib2/runtests + newlib/runtests + libs/runtests + so/runtests + clean: - -delete lib/#?.o quiet + -delete clib2/#?.o quiet + -delete newlib/#?.o quiet -delete libs/#?.o quiet + -delete so/#?.o quiet -install: - copy libs/xmlwf $(tooldir) quiet - copy /lib/expat.h /lib/expat_external.h $(staticincludedir) quiet - copy lib/libexpat.a $(staticlibdir) quiet - copy libs/expat.library $(sharedlibdir) quiet - copy include $(sharedincludedir) quiet all +package: + $(MAKE) all + -delete T:expat all force quiet + makedir all T:expat/Workbench/Libs + copy clone libs/expat.library T:expat/Workbench/Libs + makedir all T:expat/Workbench/SObjs + copy clone so/libexpat.so T:expat/Workbench/SObjs + makedir all T:expat/SDK/Local/C + copy clone libs/xmlwf T:expat/SDK/Local/C + makedir all T:expat/SDK/Local/clib2/lib + copy clone clib2/libexpat.a T:expat/SDK/Local/clib2/lib + makedir all T:expat/SDK/Local/newlib/lib + copy clone newlib/libexpat.a T:expat/SDK/Local/newlib/lib + makedir all T:expat/SDK/Local/common/include + copy clone /lib/expat.h /lib/expat_external.h T:expat/SDK/Local/common/include + makedir all T:expat/SDK/Include/include_h/inline4 + copy clone include/inline4/expat.h T:expat/SDK/Include/include_h/inline4 + makedir all T:expat/SDK/Include/include_h/interfaces + copy clone include/interfaces/expat.h T:expat/SDK/Include/include_h/interfaces + makedir all T:expat/SDK/Include/include_h/libraries + copy clone include/libraries/expat.h T:expat/SDK/Include/include_h/libraries + makedir all T:expat/SDK/Include/include_h/proto + copy clone include/proto/expat.h T:expat/SDK/Include/include_h/proto + makedir all T:expat/SDK/Documentation/Libs/Expat + copy clone /COPYING T:expat/SDK/Documentation/Libs/Expat + copy clone /README T:expat/SDK/Documentation/Libs/Expat + copy clone README.txt T:expat/SDK/Documentation/Libs/Expat/README.AmigaOS + -delete expat.lha + lha -r a expat.lha T:expat +############################################################################# -CC = gcc -LIBTOOL = ar -STRIP = strip +CC := gcc +LIBTOOL := ar +STRIP := strip -LDFLAGS = -LIBS = -CFLAGS = -DNDEBUG -O2 -LTFLAGS = -crs -STRIPFLAGS = -R.comment -LAUNCH = +CFLAGS := -DNDEBUG -O3 +LTFLAGS := -crs +STRIPFLAGS := -R.comment -ifeq ($(MAKECMDGOALS), staticlib) - CFLAGS += -mcrt=clib2 - LDFLAGS += -mcrt=clib2 - LIBS += $(STATICLIB) - INCLUDES = -I../lib -endif +############################################################################# -ifeq ($(MAKECMDGOALS), sharedlib) - CFLAGS += -mcrt=newlib -D__USE_INLINE__ - LDFLAGS += -mcrt=newlib - INCLUDES = -I. -Iinclude -Iinclude/libraries -I../lib - LAUNCH = $(DESTDIR)/launch.o -endif +clib2/libexpat.a: clib2/xmlparse.o clib2/xmltok.o clib2/xmlrole.o + $(LIBTOOL) $(LTFLAGS) $@ $^ + protect $@ -e +clib2/xmlparse.o: xmlparse.c expat.h xmlrole.h xmltok.h \ + expat_external.h internal.h amigaconfig.h -COMPILE = $(CC) $(CFLAGS) $(INCLUDES) -c +clib2/xmlrole.o: xmlrole.c ascii.h xmlrole.h expat_external.h \ + internal.h amigaconfig.h -LINK = $(CC) $(LDFLAGS) -o $@ +clib2/xmltok.o: xmltok.c xmltok_impl.c xmltok_ns.c ascii.h asciitab.h \ + iasciitab.h latin1tab.h nametab.h utf8tab.h xmltok.h xmltok_impl.h \ + expat_external.h internal.h amigaconfig.h +############################################################################# -$(STATICLIB): $(DESTDIR)/xmlparse.o $(DESTDIR)/xmltok.o $(DESTDIR)/xmlrole.o +clib2/xmlwf: clib2/xmlwf.o clib2/xmlfile.o clib2/codepage.o clib2/readfilemap.o + $(CC) -mcrt=clib2 $^ -o $@ clib2/libexpat.a + $(STRIP) $(STRIPFLAGS) $@ + +clib2/xmlwf.o: xmlwf.c + +clib2/xmlfile.o: xmlfile.c + +clib2/codepage.o: codepage.c + +clib2/readfilemap.o: readfilemap.c + +############################################################################# + +clib2/elements: clib2/elements.o + $(CC) -mcrt=clib2 $^ -o $@ clib2/libexpat.a + $(STRIP) $(STRIPFLAGS) $@ + +clib2/elements.o: elements.c + +############################################################################# + +clib2/outline: clib2/outline.o + $(CC) -mcrt=clib2 $^ -o $@ clib2/libexpat.a + $(STRIP) $(STRIPFLAGS) $@ + +clib2/outline.o: outline.c + +############################################################################# + +clib2/runtests: clib2/runtests.o clib2/chardata.o clib2/minicheck.o + $(CC) -mcrt=clib2 $^ -o $@ clib2/libexpat.a + +clib2/chardata.o: chardata.c chardata.h + +clib2/minicheck.o: minicheck.c minicheck.h + +clib2/runtests.o: runtests.c chardata.h + +############################################################################# + +clib2/benchmark: clib2/benchmark.o + $(CC) -mcrt=clib2 $^ -o $@ clib2/libexpat.a -lm + +clib2/benchmark.o: benchmark.c + +############################################################################# + +newlib/libexpat.a: newlib/xmlparse.o newlib/xmltok.o newlib/xmlrole.o $(LIBTOOL) $(LTFLAGS) $@ $^ + protect $@ -e -$(DESTDIR)/xmlparse.o: xmlparse.c expat.h xmlrole.h xmltok.h \ +newlib/xmlparse.o: xmlparse.c expat.h xmlrole.h xmltok.h \ expat_external.h internal.h amigaconfig.h - $(COMPILE) $< -o $@ -$(DESTDIR)/xmlrole.o: xmlrole.c ascii.h xmlrole.h expat_external.h \ +newlib/xmlrole.o: xmlrole.c ascii.h xmlrole.h expat_external.h \ internal.h amigaconfig.h - $(COMPILE) $< -o $@ -$(DESTDIR)/xmltok.o: xmltok.c xmltok_impl.c xmltok_ns.c ascii.h asciitab.h \ +newlib/xmltok.o: xmltok.c xmltok_impl.c xmltok_ns.c ascii.h asciitab.h \ iasciitab.h latin1tab.h nametab.h utf8tab.h xmltok.h xmltok_impl.h \ expat_external.h internal.h amigaconfig.h - $(COMPILE) $< -o $@ +############################################################################# -$(SHAREDLIB): $(DESTDIR)/expat_lib.o $(DESTDIR)/expat_vectors.o $(DESTDIR)/stdlib.o lib/libexpat.a - $(LINK) -nostartfiles -nostdlib -o $@ $^ +newlib/xmlwf: newlib/xmlwf.o newlib/xmlfile.o newlib/codepage.o newlib/readfilemap.o + $(CC) -mcrt=newlib $^ -o $@ newlib/libexpat.a + $(STRIP) $(STRIPFLAGS) $@ -$(DESTDIR)/expat_lib.o: expat_lib.c - $(COMPILE) $< -o $@ +newlib/xmlwf.o: xmlwf.c -$(DESTDIR)/expat_vectors.o: expat_vectors.c - $(COMPILE) $< -o $@ +newlib/xmlfile.o: xmlfile.c -$(DESTDIR)/stdlib.o: stdlib.c - $(COMPILE) $< -o $@ +newlib/codepage.o: codepage.c -$(LAUNCH): launch.c - $(COMPILE) $< -o $@ +newlib/readfilemap.o: readfilemap.c +############################################################################# -$(XMLWF): $(DESTDIR)/xmlwf.o $(DESTDIR)/xmlfile.o $(DESTDIR)/codepage.o $(DESTDIR)/readfilemap.o $(LAUNCH) - $(LINK) $^ $(LIBS) +newlib/elements: newlib/elements.o + $(CC) -mcrt=newlib $^ -o $@ newlib/libexpat.a $(STRIP) $(STRIPFLAGS) $@ -$(DESTDIR)/xmlwf.o: xmlwf.c - $(COMPILE) $< -o $@ +newlib/elements.o: elements.c -$(DESTDIR)/xmlfile.o: xmlfile.c - $(COMPILE) $< -o $@ +############################################################################# -$(DESTDIR)/codepage.o: codepage.c - $(COMPILE) $< -o $@ +newlib/outline: newlib/outline.o + $(CC) -mcrt=newlib $^ -o $@ newlib/libexpat.a + $(STRIP) $(STRIPFLAGS) $@ -$(DESTDIR)/readfilemap.o: readfilemap.c - $(COMPILE) $< -o $@ +newlib/outline.o: outline.c +############################################################################# -$(ELEMENTS): $(DESTDIR)/elements.o $(LAUNCH) - $(LINK) $^ $(LIBS) +newlib/runtests: newlib/runtests.o newlib/chardata.o newlib/minicheck.o + $(CC) -mcrt=newlib $^ -o $@ newlib/libexpat.a + +newlib/chardata.o: chardata.c chardata.h + +newlib/minicheck.o: minicheck.c minicheck.h + +newlib/runtests.o: runtests.c chardata.h + +############################################################################# + +newlib/benchmark: newlib/benchmark.o + $(CC) -mcrt=newlib $^ -o $@ newlib/libexpat.a + +newlib/benchmark.o: benchmark.c + +############################################################################# + +libs/expat.library: libs/expat_lib.o libs/expat_68k.o libs/expat_68k_handler_stubs.o libs/expat_vectors.o newlib/libexpat.a + $(CC) -mcrt=newlib -nostartfiles $^ -o $@ newlib/libexpat.a -Wl,--cref,-M,-Map=$@.map + protect $@ -e $(STRIP) $(STRIPFLAGS) $@ -$(DESTDIR)/elements.o: elements.c - $(COMPILE) $< -o $@ +libs/expat_lib.o: expat_lib.c expat_base.h +libs/expat_68k.o: expat_68k.c expat_68k.h expat_base.h -$(OUTLINE): $(DESTDIR)/outline.o $(LAUNCH) - $(LINK) $^ $(LIBS) +libs/expat_68k_handler_stubs.o: expat_68k_handler_stubs.c expat_68k.h + +libs/expat_vectors.o: expat_vectors.c + +libs/launch.o: launch.c + +############################################################################# + +libs/xmlwf: libs/xmlwf.o libs/xmlfile.o libs/codepage.o libs/readfilemap.o libs/launch.o + $(CC) -mcrt=newlib $^ -o $@ $(STRIP) $(STRIPFLAGS) $@ -$(DESTDIR)/outline.o: outline.c - $(COMPILE) $< -o $@ +libs/xmlwf.o: xmlwf.c +libs/xmlfile.o: xmlfile.c -$(RUNTESTS): $(DESTDIR)/runtests.o $(DESTDIR)/chardata.o $(DESTDIR)/minicheck.o $(LAUNCH) - $(LINK) $^ $(LIBS) +libs/codepage.o: codepage.c -$(DESTDIR)/chardata.o: chardata.c chardata.h - $(COMPILE) $< -o $@ +libs/readfilemap.o: readfilemap.c -$(DESTDIR)/minicheck.o: minicheck.c minicheck.h - $(COMPILE) $< -o $@ +############################################################################# -$(DESTDIR)/runtests.o: runtests.c chardata.h - $(COMPILE) $< -o $@ +libs/elements: libs/elements.o libs/launch.o + $(CC) -mcrt=newlib $^ -o $@ + $(STRIP) $(STRIPFLAGS) $@ +libs/elements.o: elements.c -$(BENCHMARK): $(DESTDIR)/benchmark.o $(LAUNCH) - $(LINK) $^ $(LIBS) -lm +############################################################################# -$(DESTDIR)/benchmark.o: benchmark/benchmark.c - $(COMPILE) $< -o $@ +libs/outline: libs/outline.o libs/launch.o + $(CC) -mcrt=newlib $^ -o $@ + $(STRIP) $(STRIPFLAGS) $@ + +libs/outline.o: outline.c + +############################################################################# + +libs/runtests: libs/runtests.o libs/chardata.o libs/minicheck.o libs/launch.o + $(CC) -mcrt=newlib $^ -o $@ + +libs/chardata.o: chardata.c chardata.h + +libs/minicheck.o: minicheck.c minicheck.h + +libs/runtests.o: runtests.c chardata.h + +############################################################################# + +libs/benchmark: libs/benchmark.o libs/launch.o + $(CC) -mcrt=newlib $^ -o $@ + +libs/benchmark.o: benchmark.c + +############################################################################# + +so/libexpat.so: so/xmlparse.o so/xmltok.o so/xmlrole.o + $(CC) -mcrt=newlib -shared -o $@ $^ + protect $@ -e + +so/xmlparse.o: xmlparse.c expat.h xmlrole.h xmltok.h \ + expat_external.h internal.h amigaconfig.h + +so/xmlrole.o: xmlrole.c ascii.h xmlrole.h expat_external.h \ + internal.h amigaconfig.h + +so/xmltok.o: xmltok.c xmltok_impl.c xmltok_ns.c ascii.h asciitab.h \ + iasciitab.h latin1tab.h nametab.h utf8tab.h xmltok.h xmltok_impl.h \ + expat_external.h internal.h amigaconfig.h + +############################################################################# + +so/xmlwf: newlib/xmlwf.o newlib/xmlfile.o newlib/codepage.o newlib/readfilemap.o + $(CC) -mcrt=newlib -use-dynld $^ -o $@ -Lso -lexpat + $(STRIP) $(STRIPFLAGS) $@ + +############################################################################# + +so/elements: newlib/elements.o + $(CC) -mcrt=newlib -use-dynld $^ -o $@ -Lso -lexpat + $(STRIP) $(STRIPFLAGS) $@ + +############################################################################# + +so/outline: newlib/outline.o + $(CC) -mcrt=newlib -use-dynld $^ -o $@ -Lso -lexpat + $(STRIP) $(STRIPFLAGS) $@ + +############################################################################# + +so/runtests: newlib/runtests.o newlib/chardata.o newlib/minicheck.o + $(CC) -mcrt=newlib -use-dynld $^ -o $@ -Lso -lexpat + +############################################################################# + +so/benchmark: newlib/benchmark.o + $(CC) -mcrt=newlib -use-dynld $^ -o $@ -Lso -lexpat + +############################################################################# + +clib2/%.o: %.c + $(CC) -mcrt=clib2 $(CFLAGS) -I../lib -c $< -o $@ + +newlib/%.o: %.c + $(CC) -mcrt=newlib $(CFLAGS) -I../lib -c $< -o $@ + +libs/%.o: %.c + $(CC) -mcrt=newlib $(CFLAGS) -D__USE_INLINE__ -I. -Iinclude -Iinclude/libraries -I../lib -c $< -o $@ + +so/%.o: %.c + $(CC) -mcrt=newlib $(CFLAGS) -fPIC -I../lib -c $< -o $@