Merge branch 'vendor/EXPAT'
[dragonfly.git] / contrib / expat / amiga / Makefile
1 #
2 # Makefile for AmigaOS
3 #
4
5 .PHONY: help all staticlib sharedlib check clean install
6
7 vpath %.c ../lib ../examples ../xmlwf ../tests
8 vpath %.h ../lib ../tests
9
10
11 #
12 # Set these for SDK installation.
13 #
14 tooldir = SDK:Local/C
15 staticlibdir = SDK:Local/clib2/lib
16 staticincludedir = SDK:Local/clib2/include
17 sharedlibdir = SDK:Local/Libs
18 sharedincludedir = SDK:Local/common/include
19
20
21 ifeq ($(MAKECMDGOALS), staticlib)
22  DESTDIR = lib
23 else
24  DESTDIR = libs
25 endif
26
27 STATICLIB = $(DESTDIR)/libexpat.a
28 SHAREDLIB = $(DESTDIR)/expat.library
29
30 XMLWF = $(DESTDIR)/xmlwf
31 ELEMENTS = $(DESTDIR)/elements
32 OUTLINE = $(DESTDIR)/outline
33 RUNTESTS = $(DESTDIR)/runtests
34 BENCHMARK = $(DESTDIR)/benchmark
35
36
37 help:
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
47 all:
48         -makedir force lib libs
49         $(MAKE) staticlib
50         $(MAKE) sharedlib
51
52 staticlib: $(STATICLIB) $(XMLWF) $(ELEMENTS) $(OUTLINE) $(RUNTESTS) $(BENCHMARK) check
53         @echo done
54
55 sharedlib: $(SHAREDLIB) $(XMLWF) $(ELEMENTS) $(OUTLINE) $(RUNTESTS) $(BENCHMARK) check
56         @echo done
57
58 check:
59         $(RUNTESTS)
60
61 clean:
62         -delete lib/#?.o quiet
63         -delete libs/#?.o quiet
64
65 install:
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
73 CC = gcc
74 LIBTOOL = ar
75 STRIP = strip
76
77 LDFLAGS =
78 LIBS =
79 CFLAGS = -DNDEBUG -O2
80 LTFLAGS = -crs
81 STRIPFLAGS = -R.comment
82 LAUNCH =
83
84 ifeq ($(MAKECMDGOALS), staticlib)
85  CFLAGS += -mcrt=clib2
86  LDFLAGS += -mcrt=clib2
87  LIBS += $(STATICLIB)
88  INCLUDES = -I../lib
89 endif
90
91 ifeq ($(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
96 endif
97
98
99 COMPILE = $(CC) $(CFLAGS) $(INCLUDES) -c
100
101 LINK = $(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 $@