|
version 1.1, 2012/02/21 23:00:54
|
version 1.1.1.2, 2014/06/15 16:09:43
|
|
Line 2
|
Line 2
|
| # Makefile for AmigaOS |
# 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 |
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: |
help: |
| @echo "Requires:" |
@echo "Requires:" |
| @echo " AmigaOS 4.0" | @echo " AmigaOS 4.x" |
| @echo " SDK 51.22" | @echo " SDK 53.13" |
| @echo " clib2 1.202" | |
| @echo "" |
@echo "" |
| @echo "Targets:" |
@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 " 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: | all: clib2 newlib library so check |
| -makedir force lib libs | |
| $(MAKE) staticlib | |
| $(MAKE) sharedlib | |
| |
|
| staticlib: $(STATICLIB) $(XMLWF) $(ELEMENTS) $(OUTLINE) $(RUNTESTS) $(BENCHMARK) check | clib2: clib2/libexpat.a clib2/xmlwf clib2/elements clib2/outline clib2/runtests clib2/benchmark |
| @echo done | |
| |
|
| sharedlib: $(SHAREDLIB) $(XMLWF) $(ELEMENTS) $(OUTLINE) $(RUNTESTS) $(BENCHMARK) check | newlib: newlib/libexpat.a newlib/xmlwf newlib/elements newlib/outline newlib/runtests newlib/benchmark |
| @echo done | |
| |
|
| check: | library: libs/expat.library libs/xmlwf libs/elements libs/outline libs/runtests libs/benchmark |
| $(RUNTESTS) | |
| |
|
| |
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: |
clean: |
| -delete lib/#?.o quiet | -delete clib2/#?.o quiet |
| | -delete newlib/#?.o quiet |
| -delete libs/#?.o quiet |
-delete libs/#?.o quiet |
| |
-delete so/#?.o quiet |
| |
|
| install: | package: |
| copy libs/xmlwf $(tooldir) quiet | $(MAKE) all |
| copy /lib/expat.h /lib/expat_external.h $(staticincludedir) quiet | -delete T:expat all force quiet |
| copy lib/libexpat.a $(staticlibdir) quiet | makedir all T:expat/Workbench/Libs |
| copy libs/expat.library $(sharedlibdir) quiet | copy clone libs/expat.library T:expat/Workbench/Libs |
| copy include $(sharedincludedir) quiet all | 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 | CC := gcc |
| LIBTOOL = ar | LIBTOOL := ar |
| STRIP = strip | STRIP := strip |
| |
|
| LDFLAGS = | CFLAGS := -DNDEBUG -O3 |
| LIBS = | LTFLAGS := -crs |
| CFLAGS = -DNDEBUG -O2 | STRIPFLAGS := -R.comment |
| LTFLAGS = -crs | |
| STRIPFLAGS = -R.comment | |
| LAUNCH = | |
| |
|
| ifeq ($(MAKECMDGOALS), staticlib) | ############################################################################# |
| CFLAGS += -mcrt=clib2 | |
| LDFLAGS += -mcrt=clib2 | |
| LIBS += $(STATICLIB) | |
| INCLUDES = -I../lib | |
| endif | |
| |
|
| ifeq ($(MAKECMDGOALS), sharedlib) | clib2/libexpat.a: clib2/xmlparse.o clib2/xmltok.o clib2/xmlrole.o |
| CFLAGS += -mcrt=newlib -D__USE_INLINE__ | $(LIBTOOL) $(LTFLAGS) $@ $^ |
| LDFLAGS += -mcrt=newlib | protect $@ -e |
| INCLUDES = -I. -Iinclude -Iinclude/libraries -I../lib | |
| LAUNCH = $(DESTDIR)/launch.o | |
| endif | |
| |
|
| |
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) $@ $^ |
$(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 |
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 |
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 \ |
iasciitab.h latin1tab.h nametab.h utf8tab.h xmltok.h xmltok_impl.h \ |
| expat_external.h internal.h amigaconfig.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 | newlib/xmlwf: newlib/xmlwf.o newlib/xmlfile.o newlib/codepage.o newlib/readfilemap.o |
| $(LINK) -nostartfiles -nostdlib -o $@ $^ | $(CC) -mcrt=newlib $^ -o $@ newlib/libexpat.a |
| | $(STRIP) $(STRIPFLAGS) $@ |
| |
|
| $(DESTDIR)/expat_lib.o: expat_lib.c | newlib/xmlwf.o: xmlwf.c |
| $(COMPILE) $< -o $@ | |
| |
|
| $(DESTDIR)/expat_vectors.o: expat_vectors.c | newlib/xmlfile.o: xmlfile.c |
| $(COMPILE) $< -o $@ | |
| |
|
| $(DESTDIR)/stdlib.o: stdlib.c | newlib/codepage.o: codepage.c |
| $(COMPILE) $< -o $@ | |
| |
|
| $(LAUNCH): launch.c | newlib/readfilemap.o: readfilemap.c |
| $(COMPILE) $< -o $@ | |
| |
|
| |
############################################################################# |
| |
|
| $(XMLWF): $(DESTDIR)/xmlwf.o $(DESTDIR)/xmlfile.o $(DESTDIR)/codepage.o $(DESTDIR)/readfilemap.o $(LAUNCH) | newlib/elements: newlib/elements.o |
| $(LINK) $^ $(LIBS) | $(CC) -mcrt=newlib $^ -o $@ newlib/libexpat.a |
| $(STRIP) $(STRIPFLAGS) $@ |
$(STRIP) $(STRIPFLAGS) $@ |
| |
|
| $(DESTDIR)/xmlwf.o: xmlwf.c | newlib/elements.o: elements.c |
| $(COMPILE) $< -o $@ | |
| |
|
| $(DESTDIR)/xmlfile.o: xmlfile.c | ############################################################################# |
| $(COMPILE) $< -o $@ | |
| |
|
| $(DESTDIR)/codepage.o: codepage.c | newlib/outline: newlib/outline.o |
| $(COMPILE) $< -o $@ | $(CC) -mcrt=newlib $^ -o $@ newlib/libexpat.a |
| | $(STRIP) $(STRIPFLAGS) $@ |
| |
|
| $(DESTDIR)/readfilemap.o: readfilemap.c | newlib/outline.o: outline.c |
| $(COMPILE) $< -o $@ | |
| |
|
| |
############################################################################# |
| |
|
| $(ELEMENTS): $(DESTDIR)/elements.o $(LAUNCH) | newlib/runtests: newlib/runtests.o newlib/chardata.o newlib/minicheck.o |
| $(LINK) $^ $(LIBS) | $(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) $@ |
$(STRIP) $(STRIPFLAGS) $@ |
| |
|
| $(DESTDIR)/elements.o: elements.c | libs/expat_lib.o: expat_lib.c expat_base.h |
| $(COMPILE) $< -o $@ | |
| |
|
| |
libs/expat_68k.o: expat_68k.c expat_68k.h expat_base.h |
| |
|
| $(OUTLINE): $(DESTDIR)/outline.o $(LAUNCH) | libs/expat_68k_handler_stubs.o: expat_68k_handler_stubs.c expat_68k.h |
| $(LINK) $^ $(LIBS) | |
| | 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) $@ |
$(STRIP) $(STRIPFLAGS) $@ |
| |
|
| $(DESTDIR)/outline.o: outline.c | libs/xmlwf.o: xmlwf.c |
| $(COMPILE) $< -o $@ | |
| |
|
| |
libs/xmlfile.o: xmlfile.c |
| |
|
| $(RUNTESTS): $(DESTDIR)/runtests.o $(DESTDIR)/chardata.o $(DESTDIR)/minicheck.o $(LAUNCH) | libs/codepage.o: codepage.c |
| $(LINK) $^ $(LIBS) | |
| |
|
| $(DESTDIR)/chardata.o: chardata.c chardata.h | libs/readfilemap.o: readfilemap.c |
| $(COMPILE) $< -o $@ | |
| |
|
| $(DESTDIR)/minicheck.o: minicheck.c minicheck.h | ############################################################################# |
| $(COMPILE) $< -o $@ | |
| |
|
| $(DESTDIR)/runtests.o: runtests.c chardata.h | libs/elements: libs/elements.o libs/launch.o |
| $(COMPILE) $< -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 | libs/outline: libs/outline.o libs/launch.o |
| $(COMPILE) $< -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 $@ |