Import menuselect r1110
[dahdi/tools.git] / menuselect / mxml / Makefile.in
1 #
2 # "$Id: Makefile.in 23382 2006-04-29 15:44:02Z russell $"
3 #
4 # Makefile for Mini-XML, a small XML-like file parsing library.
5 #
6 # Copyright 2003-2005 by Michael Sweet.
7 #
8 # This program is free software; you can redistribute it and/or
9 # modify it under the terms of the GNU Library General Public
10 # License as published by the Free Software Foundation; either
11 # version 2, or (at your option) any later version.
12 #
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # GNU General Public License for more details.
17 #
18
19 #
20 # Compiler tools definitions...
21 #
22
23 AR              =       @AR@
24 ARFLAGS         =       @ARFLAGS@
25 CC              =       @CC@
26 CFLAGS          =       $(OPTIM) @CFLAGS@ @CPPFLAGS@
27 CP              =       @CP@
28 DSO             =       @DSO@
29 DSOFLAGS        =       @DSOFLAGS@
30 LDFLAGS         =       $(OPTIM) @LDFLAGS@
31 INSTALL         =       @INSTALL@
32 LIBMXML         =       @LIBMXML@
33 LN              =       @LN@ -s
34 MKDIR           =       @MKDIR@
35 OPTIM           =       @OPTIM@
36 RANLIB          =       @RANLIB@
37 RM              =       @RM@ -f
38 SHELL           =       /bin/sh
39
40
41 #
42 # Configured directories...
43 #
44
45 prefix          =       @prefix@
46 exec_prefix     =       @exec_prefix@
47 bindir          =       @bindir@
48 includedir      =       @includedir@
49 libdir          =       @libdir@
50 mandir          =       @mandir@
51 docdir          =       @docdir@
52 datarootdir =   @datarootdir@
53 BUILDROOT       =       $(DSTROOT)
54
55
56 #
57 # Install commands...
58 #
59
60 INSTALL_BIN     =       $(LIBTOOL) $(INSTALL) -m 755 -s
61 INSTALL_DATA    =       $(INSTALL) -m 644
62 INSTALL_DIR     =       $(INSTALL) -d
63 INSTALL_LIB     =       $(LIBTOOL) $(INSTALL) -m 755
64 INSTALL_MAN     =       $(INSTALL) -m 644
65 INSTALL_SCRIPT  =       $(INSTALL) -m 755
66
67
68 #
69 # Rules...
70 #
71
72 .SUFFIXES:      .0 .1 .3 .c .man .o
73 .c.o:
74         $(CC) $(CFLAGS) -c $<
75 .man.0 .man.1 .man.3:
76         $(RM) $@
77         $(NROFF) -man $< >$@
78
79
80 #
81 # Targets...
82 #
83
84 DOCFILES        =       doc/mxml.html doc/mxmldoc.xsd \
85                         README COPYING CHANGES
86 PUBLIBOBJS      =       mxml-attr.o mxml-entity.o mxml-file.o mxml-index.o \
87                         mxml-node.o mxml-search.o mxml-set.o
88 LIBOBJS         =       $(PUBLIBOBJS) mxml-private.o mxml-string.o
89 OBJS            =       mxmldoc.o testmxml.o $(LIBOBJS)
90 TARGETS         =       $(LIBMXML) mxmldoc testmxml mxml.xml
91
92
93 #
94 # Make everything...
95 #
96
97 all:            Makefile configure config.h $(TARGETS)
98
99
100 #
101 # Clean everything...
102 #
103
104 clean:
105         $(RM) $(OBJS) $(TARGETS)
106         $(RM) mxmldoc-static libmxml.a
107         $(RM) *.bck *.bak
108         $(RM) config.cache config.log config.status config.h
109         $(RM) -r autom4te*.cache
110
111 distclean: clean
112         $(RM) mxml.list Makefile
113
114 #
115 # Install everything...
116 #
117
118 install:        $(TARGETS) install-$(LIBMXML) install-libmxml.a
119         $(INSTALL_DIR) $(BUILDROOT)$(bindir)
120         $(INSTALL_BIN) mxmldoc $(BUILDROOT)$(bindir) 
121         $(INSTALL_DIR) $(BUILDROOT)$(docdir)
122         for file in $(DOCFILES); do \
123                 $(INSTALL_MAN) $$file $(BUILDROOT)$(docdir); \
124         done
125         $(INSTALL_DIR) $(BUILDROOT)$(includedir)
126         $(INSTALL_DATA) mxml.h $(BUILDROOT)$(includedir)
127         $(INSTALL_DIR) $(BUILDROOT)$(libdir)/pkgconfig
128         $(INSTALL_DATA) mxml.pc $(BUILDROOT)$(libdir)/pkgconfig
129         $(INSTALL_DIR) $(BUILDROOT)$(mandir)/cat1
130         $(INSTALL_MAN) doc/mxmldoc.$(CAT1EXT) $(BUILDROOT)$(mandir)/cat1/mxmldoc.$(CAT1EXT)
131         $(INSTALL_DIR) $(BUILDROOT)$(mandir)/cat3
132         $(INSTALL_MAN) doc/mxml.$(CAT3EXT) $(BUILDROOT)$(mandir)/cat3/mxml.$(CAT3EXT)
133         $(INSTALL_DIR) $(BUILDROOT)$(mandir)/man1
134         $(INSTALL_MAN) doc/mxmldoc.man $(BUILDROOT)$(mandir)/man1/mxmldoc.$(MAN1EXT)
135         $(INSTALL_DIR) $(BUILDROOT)$(mandir)/man3
136         $(INSTALL_MAN) doc/mxml.man $(BUILDROOT)$(mandir)/man3/mxml.$(MAN3EXT)
137
138 install-libmxml.a:
139         $(INSTALL_DIR) $(BUILDROOT)$(libdir)
140         $(INSTALL_LIB) libmxml.a $(BUILDROOT)$(libdir)
141
142 install-libmxml.so.1.0:
143         $(INSTALL_DIR) $(BUILDROOT)$(libdir)
144         $(INSTALL_LIB) libmxml.so.1.0 $(BUILDROOT)$(libdir)
145         $(RM) $(BUILDROOT)$(libdir)/libmxml.so
146         $(LN) libmxml.so.1.0 $(BUILDROOT)$(libdir)/libmxml.so
147         $(RM) $(BUILDROOT)$(libdir)/libmxml.so.1
148         $(LN) libmxml.so.1.0 $(BUILDROOT)$(libdir)/libmxml.so.1
149
150 install-libmxml.sl.1:
151         $(INSTALL_DIR) $(BUILDROOT)$(libdir)
152         $(INSTALL_LIB) libmxml.sl.1 $(BUILDROOT)$(libdir)
153         $(RM) $(BUILDROOT)$(libdir)/libmxml.so
154         $(LN) libmxml.sl.1 $(BUILDROOT)$(libdir)/libmxml.sl
155
156 install-libmxml.1.dylib:
157         $(INSTALL_DIR) $(BUILDROOT)$(libdir)
158         $(INSTALL_LIB) libmxml.1.dylib $(BUILDROOT)$(libdir)
159         $(RM) $(BUILDROOT)$(libdir)/libmxml.dylib
160         $(LN) libmxml.1.dylib $(BUILDROOT)$(libdir)/libmxml.dylib
161
162
163 #
164 # Uninstall everything...
165 #
166
167 uninstall: uninstall-$(LIBMXML) uninstall-libmxml.a
168         $(RM) $(BUILDROOT)$(bindir)/mxmldoc
169         $(RM) -r $(BUILDROOT)$(docdir)
170         $(RM) $(BUILDROOT)$(includedir)/mxml.h
171         $(RM) $(BUILDROOT)$(libdir)/pkgconfig/mxml.pc
172         $(RM) $(BUILDROOT)$(mandir)/cat1/mxmldoc.$(CAT1EXT)
173         $(RM) $(BUILDROOT)$(mandir)/cat3/mxml.$(CAT3EXT)
174         $(RM) $(BUILDROOT)$(mandir)/man1/mxmldoc.$(MAN1EXT)
175         $(RM) $(BUILDROOT)$(mandir)/man3/mxml.$(MAN3EXT)
176
177 uninstall-libmxml.a:
178         $(RM) $(BUILDROOT)$(libdir)/libmxml.a
179
180 uninstall-libmxml.so.1.0:
181         $(RM) $(BUILDROOT)$(libdir)/libmxml.so
182         $(RM) $(BUILDROOT)$(libdir)/libmxml.so.1
183         $(RM) $(BUILDROOT)$(libdir)/libmxml.so.1.0
184
185 uninstall-libmxml.sl.1:
186         $(RM) $(BUILDROOT)$(libdir)/libmxml.sl
187         $(RM) $(BUILDROOT)$(libdir)/libmxml.sl.1
188
189 uninstall-libmxml.1.dylib:
190         $(RM) $(BUILDROOT)$(libdir)/libmxml.dylib
191         $(RM) $(BUILDROOT)$(libdir)/libmxml.1.dylib
192
193
194 #
195 # Make packages using EPM (http://www.easysw.com/epm/)
196 #
197
198 epm:    all
199         epm --output-dir dist -v -f native mxml
200         epm --output-dir dist -v -f portable mxml
201
202
203 #
204 # autoconf stuff...
205 #
206
207 Makefile:       Makefile.in
208         if test -f config.status; then \
209                 ./config.status --recheck; \
210                 ./config.status; \
211         else \
212                 ./configure; \
213         fi
214         touch config.h
215
216
217 config.h:       configure config.h.in
218         if test -f config.status; then \
219                 ./config.status --recheck; \
220                 ./config.status; \
221         else \
222                 ./configure; \
223         fi
224         touch config.h
225
226
227 #
228 # libmxml.a
229 #
230
231 libmxml.a:      $(LIBOBJS)
232         $(RM) $@
233         $(AR) $(ARFLAGS) $@ $(LIBOBJS)
234         $(RANLIB) $@
235
236 $(LIBOBJS):     mxml.h
237
238
239 #
240 # libmxml.so.1.0
241 #
242
243 libmxml.so.1.0: $(LIBOBJS)
244         $(DSO) $(DSOFLAGS) -o libmxml.so.1.0 $(LIBOBJS)
245         $(RM) libmxml.so libmxml.so.1
246         $(LN) libmxml.so.1.0 libmxml.so
247         $(LN) libmxml.so.1.0 libmxml.so.1
248
249
250 #
251 # libmxml.sl.1
252 #
253
254 libmxml.sl.1:   $(LIBOBJS)
255         $(DSO) $(DSOFLAGS) -o libmxml.sl.1 $(LIBOBJS)
256         $(RM) libmxml.sl libmxml.sl.1
257         $(LN) libmxml.sl.1 libmxml.sl
258
259
260 #
261 # libmxml.1.dylib
262 #
263
264 libmxml.1.dylib:        $(LIBOBJS)
265         $(DSO) $(DSOFLAGS) -o libmxml.1.dylib \
266                 -install_name $(libdir)/libmxml.dylib \
267                 -current_version 1.0.0 \
268                 -compatibility_version 1.0.0 \
269                 $(LIBOBJS)
270         $(RM) libmxml.dylib libmxml.1.dylib
271         $(LN) libmxml.1.dylib libmxml.dylib
272
273
274 #
275 # mxmldoc
276 #
277
278 mxmldoc:        $(LIBMXML) mxmldoc.o
279         $(CC) $(LDFLAGS) -o $@ mxmldoc.o -L. -lmxml
280
281 mxmldoc-static: libmxml.a mxmldoc.o
282         $(CC) $(LDFLAGS) -o $@ mxmldoc.o libmxml.a
283
284 mxmldoc.o:      mxml.h
285
286
287 #
288 # testmxml
289 #
290
291 testmxml:       libmxml.a testmxml.o
292         $(CC) $(LDFLAGS) -o $@ testmxml.o libmxml.a
293         @echo Testing library...
294         ./testmxml test.xml >temp1.xml 2>temp1s.xml
295         ./testmxml temp1.xml >temp2.xml 2>temp2s.xml
296         @if cmp temp1.xml temp2.xml; then \
297                 echo Stdio file test passed!; \
298                 $(RM) temp2.xml temp2s.xml; \
299         else \
300                 echo Stdio file test failed!; \
301         fi
302         @if cmp temp1.xml temp1s.xml; then \
303                 echo String test passed!; \
304                 $(RM) temp1.xml temp1s.xml; \
305         else \
306                 echo String test failed!; \
307         fi
308         @if cmp test.xml test.xmlfd; then \
309                 echo File descriptor test passed!; \
310                 $(RM) test.xmlfd; \
311         else \
312                 echo File descriptor test failed!; \
313         fi
314
315 testmxml.o:     mxml.h
316
317
318 #
319 # mxml.xml
320 #
321
322 mxml.xml:       mxmldoc-static mxml.h $(PUBLIBOBJS:.o=.c)
323         $(RM) mxml.xml
324         ./mxmldoc-static mxml.xml mxml.h $(PUBLIBOBJS:.o=.c) >doc/reference.html
325
326 valgrind:       mxmldoc-static
327         $(RM) valgrind.xml
328         valgrind --tool=memcheck --leak-check=yes ./mxmldoc-static \
329                 valgrind.xml mxml.h $(PUBLIBOBJS:.o=.c) \
330                 >valgrind.html 2>valgrind.out
331
332
333 #
334 # All object files depend on the makefile...
335 #
336
337 $(OBJS):        Makefile config.h
338
339
340 #
341 # End of "$Id: Makefile.in 23382 2006-04-29 15:44:02Z russell $".
342 #