]> sourceware.org Git - newlib-cygwin.git/blob - newlib/Makefile.am
* Makefile.am (check-DEJAGNU): New target.
[newlib-cygwin.git] / newlib / Makefile.am
1 ## Process this file with automake to generate Makefile.in
2
3 AUTOMAKE_OPTIONS = cygnus dejagnu
4
5 # Multilib support variables.
6 MULTISRCTOP =
7 MULTIBUILDTOP =
8 MULTIDIRS =
9 MULTISUBDIR =
10 MULTIDO = true
11 MULTICLEAN = true
12
13 LIBTOOL_VERSION_INFO = 0:0:0
14
15 if NEWLIB_HW_FP
16 MATHDIR = mathfp
17 else
18 MATHDIR = math
19 endif
20
21 # Work around what appears to be a GNU make bug handling MAKEFLAGS
22 # values defined in terms of make variables, as is the case for CC and
23 # friends when we are called from the top level Makefile.
24 AM_MAKEFLAGS = \
25 "AR_FLAGS=$(AR_FLAGS)" \
26 "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
27 "CFLAGS=$(CFLAGS)" \
28 "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
29 "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
30 "LDFLAGS=$(LDFLAGS)" \
31 "LIBCFLAGS=$(LIBCFLAGS)" \
32 "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
33 "MAKE=$(MAKE)" \
34 "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
35 "PICFLAG=$(PICFLAG)" \
36 "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
37 "SHELL=$(SHELL)" \
38 "EXPECT=$(EXPECT)" \
39 "RUNTEST=$(RUNTEST)" \
40 "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
41 "exec_prefix=$(exec_prefix)" \
42 "infodir=$(infodir)" \
43 "libdir=$(libdir)" \
44 "prefix=$(prefix)" \
45 "tooldir=$(tooldir)" \
46 "AR=$(AR)" \
47 "AS=$(AS)" \
48 "CC=$(CC)" \
49 "LD=$(LD)" \
50 "LIBCFLAGS=$(LIBCFLAGS)" \
51 "NM=$(NM)" \
52 "PICFLAG=$(PICFLAG)" \
53 "RANLIB=$(RANLIB)" \
54 "DESTDIR=$(DESTDIR)"
55
56 FLAGS_TO_PASS=$(AM_MAKEFLAGS)
57
58 if HAVE_DOC
59 DOCDIR = doc
60 else
61 DOCDIR =
62 endif
63
64 SUBDIRS = libc libm \
65 $(DOCDIR) .
66
67 tooldir = $(exec_prefix)/$(host_alias)
68 toollibdir = $(tooldir)/lib$(MULTISUBDIR)
69
70 AR_FLAGS = rc
71
72 if USE_LIBTOOL
73 toollib_LTLIBRARIES = libm.la \
74 libc.la
75 else
76 toollib_LIBRARIES = libm.a \
77 libc.a
78 endif
79
80 noinst_DATA = stmp-targ-include
81
82 toollib_DATA = $(CRT0) $(CRT1)
83
84
85 # The functions ldexp, frexp and modf are traditionally supplied in
86 # both libc.a and libm.a. We build them in libm.a and copy them over,
87 # along with some required supporting routines.
88 MATHOBJS_IN_LIBC = \
89 s_isinf.$(oext) sf_isinf.$(oext) \
90 s_isnan.$(oext) sf_isnan.$(oext) \
91 s_ldexp.$(oext) sf_ldexp.$(oext) \
92 s_frexp.$(oext) sf_frexp.$(oext) \
93 s_modf.$(oext) \
94 sf_modf.$(oext) s_scalbn.$(oext) \
95 sf_scalbn.$(oext) \
96 s_finite.$(oext) sf_finite.$(oext) \
97 s_copysign.$(oext) sf_copysign.$(oext) \
98 s_infconst.$(oext)
99
100 LIBC_OBJECTLISTS = \
101 $(POSIX_OBJECTLIST) \
102 $(SIGNAL_OBJECTLIST) \
103 $(SYSCALL_OBJECTLIST) \
104 $(UNIX_OBJECTLIST) \
105 libc/stdlib/objectlist.awk.in \
106 libc/time/objectlist.awk.in \
107 libc/ctype/objectlist.awk.in \
108 libc/string/objectlist.awk.in \
109 libc/locale/objectlist.awk.in \
110 libc/misc/objectlist.awk.in \
111 libc/reent/objectlist.awk.in \
112 libc/errno/objectlist.awk.in \
113 libc/stdio/objectlist.awk.in \
114 $(MACHINE_OBJECTLIST) \
115 $(SYS_OBJECTLIST) \
116 $(SYS_MACH_OBJECTLIST)
117
118 LIBM_OBJECTLISTS = \
119 libm/$(MATHDIR)/objectlist.awk.in \
120 libm/common/objectlist.awk.in \
121 $(LIBM_MACHINE_OBJECTLIST)
122
123 libm_la_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO) -release newlib -no-undefined -Xcompiler -nostdlib -Xlinker --version-script=$(srcdir)/libc/sys/linux/shared.ld `cat libm-libtool-objectlist`
124
125 libc_la_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO) -release newlib -no-undefined -Xcompiler -nostdlib -Xlinker --version-script=$(srcdir)/libc/sys/linux/shared.ld `cat libc-libtool-objectlist`
126
127 if USE_LIBTOOL
128 libm_la_SOURCES =
129 libm_la_DEPENDENCIES = libm-libtool-objectlist
130
131 # objects listed later in LIBM_OBJECTLISTS will override those listed earlier
132 libm-libtool-objectlist: $(LIBM_OBJECTLISTS)
133 cat $(LIBM_OBJECTLISTS) | $(AWK) '{ libm[$$1] = $$2 }; END { for (x in libm) printf ("%s\n", libm[x]) }' > $@
134
135 libc_la_SOURCES =
136 libc_la_DEPENDENCIES = libc-libtool-objectlist
137
138 # objects listed later in LIBM_OBJECTLISTS and LIBC_OBJECTLISTS will override those listed earlier
139 libc-libtool-objectlist: $(LIBM_OBJECTLISTS) $(LIBC_OBJECTLISTS)
140 cat $(LIBM_OBJECTLISTS) $(LIBC_OBJECTLISTS) | $(AWK) '{ libc[$$1] = $$2 }; END { for (x in libc) printf ("%s\n", libc[x]) }' > $@
141
142 else
143
144 libc.a: libc/libc.a libm.a
145 rm -rf libc.a libg.a tmp
146 mkdir tmp
147 cd tmp; \
148 $(AR) x ../libm.a $(MATHOBJS_IN_LIBC) ; \
149 $(AR) x ../libc/libc.a ; \
150 $(AR) $(AR_FLAGS) ../$@ *.o
151 $(RANLIB) libc.a
152 ln libc.a libg.a >/dev/null 2>/dev/null || cp libc.a libg.a
153 rm -rf tmp
154
155 libc/libc.a: ; @true
156
157 libm.a: libm/libm.a
158 rm -f $@
159 ln libm/libm.a $@ >/dev/null 2>/dev/null || cp libm/libm.a $@
160
161 libm/libm.a: ; @true
162
163 endif # USE_LIBTOOL
164
165 crt0.o: $(CRT0_DIR)$(CRT0)
166 rm -f $@
167 ln $(CRT0_DIR)$(CRT0) $@ >/dev/null 2>/dev/null \
168 || cp $(CRT0_DIR)$(CRT0) $@
169
170 $(CRT0_DIR)$(CRT0): ; @true
171
172 crt1.o: $(CRT1_DIR)$(CRT1)
173 rm -f $@
174 ln $(CRT0_DIR)$(CRT0) $@ >/dev/null 2>/dev/null \
175 || cp $(CRT0_DIR)$(CRT0) $@
176
177 $(CRT1_DIR)$(CRT1): ; @true
178
179
180 all-recursive: stmp-targ-include
181
182 # The targ-include directory just holds the includes files for the
183 # particular system and machine we have been configured for. It is
184 # used while building.
185 stmp-targ-include: config.status
186 -rm -rf targ-include stmp-targ-include
187 mkdir targ-include targ-include/sys targ-include/machine
188 -for i in $(srcdir)/libc/machine/$(machine_dir)/machine/*.h; do \
189 if [ -f $$i ]; then \
190 cp $$i targ-include/machine/`basename $$i`; \
191 else true; fi ; \
192 done
193 -for i in $(srcdir)/libc/sys/$(sys_dir)/include/*.h; do \
194 if [ -f $$i ]; then \
195 cp $$i targ-include/`basename $$i`; \
196 else true; fi ; \
197 done
198 -for i in $(srcdir)/libc/sys/$(sys_dir)/sys/*.h; do \
199 if [ -f $$i ]; then \
200 cp $$i targ-include/sys/`basename $$i`; \
201 else true; fi ; \
202 done
203 -for i in $(srcdir)/libc/sys/$(sys_dir)/machine/$(machine_dir)/*.h; do \
204 if [ -f $$i ]; then \
205 cp $$i targ-include/machine/`basename $$i`; \
206 else true; fi ; \
207 done
208 touch $@
209
210 CLEANFILES = targ-include stmp-targ-include
211
212 install-data-local: install-toollibLIBRARIES
213 if USE_LIBTOOL
214 else
215 rm -f $(DESTDIR)$(toollibdir)/libg.a
216 ln $(DESTDIR)$(toollibdir)/libc.a $(DESTDIR)$(toollibdir)/libg.a >/dev/null 2>/dev/null || cp $(DESTDIR)$(toollibdir)/libc.a $(DESTDIR)$(toollibdir)/libg.a
217 endif
218 $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
219 -if [ -z "$(MULTISUBDIR)" ]; then \
220 $(mkinstalldirs) $(DESTDIR)$(tooldir)/include; \
221 for i in $(srcdir)/libc/include/*.h; do \
222 $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/`basename $$i`; \
223 done; \
224 $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/machine; \
225 for i in $(srcdir)/libc/include/machine/*.h; do \
226 $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/machine/`basename $$i`; \
227 done; \
228 for i in $(srcdir)/libc/machine/$(machine_dir)/machine/*.h; do \
229 if [ -f $$i ]; then \
230 $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/machine/`basename $$i`; \
231 else true; fi ; \
232 done; \
233 $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/sys; \
234 for i in $(srcdir)/libc/include/sys/*.h; do \
235 $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/sys/`basename $$i`; \
236 done; \
237 for i in $(srcdir)/libc/sys/$(sys_dir)/sys/*.h; do \
238 if [ -f $$i ]; then \
239 $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/sys/`basename $$i`; \
240 else true; fi ; \
241 done ; \
242 for i in $(srcdir)/libc/sys/$(sys_dir)/include/*.h; do \
243 if [ -f $$i ]; then \
244 $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/`basename $$i`; \
245 else true; fi ; \
246 done ; \
247 else true; fi
248
249 # Force makedoc to be built before building info files.
250 info-recursive: doc/makedoc
251 dvi-recursive: doc/makedoc
252 doc/makedoc:
253 cd doc && $(MAKE) all
254
255 CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
256
257 # Multilib support.
258 .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
259 maintainer-clean-multi
260
261 all-recursive: all-multi
262 mostlyclean-recursive: mostlyclean-multi
263 clean-recursive: clean-multi
264 distclean-recursive: distclean-multi
265 maintainer-clean-recursive: maintainer-clean-multi
266
267 all-multi:
268 $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
269 mostlyclean-multi:
270 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
271 clean-multi:
272 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
273 distclean-multi:
274 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
275 maintainer-clean-multi:
276 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
277
278 MAKEOVERRIDES=
279
280 # dejagnu support
281
282 RUNTESTFLAGS=
283
284 site.exp: Makefile
285 @echo 'Making a new site.exp file...'
286 @test ! -f site.bak || rm -f site.bak
287 @echo '## these variables are automatically generated by make ##' > $@-t
288 @echo '# Do not edit here. If you wish to override these values' >> $@-t
289 @echo '# edit the last section' >> $@-t
290 @echo 'set tool $(DEJATOOL)' >> $@-t
291 @echo 'set tool_version $(VERSION)' >> $@-t
292 @echo 'set srcdir $(srcdir)/testsuite' >> $@-t
293 @echo 'set objdir' `pwd` >> $@-t
294 @echo 'set newlib_cflags "$(NEWLIB_CFLAGS)"' >> $@-t
295 @echo 'set build_alias $(build_alias)' >> $@-t
296 @echo 'set build_triplet $(build_triplet)' >> $@-t
297 @echo 'set host_alias $(host_alias)' >> $@-t
298 @echo 'set host_triplet $(host_triplet)' >> $@-t
299 @echo 'set target_alias $(host_alias)' >> $@-t
300 @echo 'set target_triplet $(host_triplet)' >> $@-t
301 @echo '## All variables above are generated by configure. Do Not Edit ##' >> $@-t
302 @test ! -f site.exp || sed '1,/^## All variables above are.*##/ d' site.exp >> $@-t
303 @test ! -f site.exp || mv site.exp site.bak
304 @mv $@-t site.exp
305
306 check-DEJAGNU: site.exp
307 @if [ -d testsuite ] ; then \
308 true ; \
309 else \
310 mkdir testsuite ; \
311 fi
312 @rm -f testsuite/site.exp
313 @cp site.exp testsuite/site.exp
314 @rootme=`pwd` ; \
315 export rootme ; \
316 srcdir=`cd ${srcdir}; pwd` ; \
317 export srcdir ; \
318 EXPECT=`if [ -f $${rootme}/${MULTIBUILDTOP}../../expect/expect ] ; then \
319 echo $${rootme}/${MULTIBUILDTOP}../../expect/expect ; \
320 else \
321 echo expect ; \
322 fi` ; \
323 export EXPECT ; \
324 echo "Found expect: $${EXPECT}" ; \
325 if [ -f $(top_builddir)/$(MULTIBUILDTOP)../../expect/expect ] ; then \
326 TCL_LIBRARY=`cd $(top_srcdir)/../tcl/library && pwd` ; \
327 export TCL_LIBRARY ; \
328 echo "Found TCL library directory: $${TCL_LIBRARY}" ; \
329 fi ; \
330 RUNTEST=`if [ -f $${srcdir}/../dejagnu/runtest ] ; then \
331 echo $${srcdir}/../dejagnu/runtest ; \
332 else \
333 echo runtest ; \
334 fi` ; \
335 export RUNTEST ; \
336 echo "Found runtest: $${RUNTEST}" ; \
337 cd testsuite ; \
338 if $(SHELL) -c "$$RUNTEST --version" > /dev/null 2>&1 ; then \
339 $$RUNTEST --tool $(DEJATOOL) --srcdir $${srcdir}/testsuite $(RUNTESTFLAGS); \
340 else \
341 echo "WARNING: could not find \`runtest'" 1>&2 ; \
342 fi
This page took 0.053383 seconds and 6 git commands to generate.