1 ## Process this file with automake to generate Makefile.in
3 AUTOMAKE_OPTIONS = cygnus
5 # Multilib support variables.
13 LIBTOOL_VERSION_INFO = 0:0:0
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.
25 "AR_FLAGS=$(AR_FLAGS)" \
26 "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
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)" \
34 "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
35 "PICFLAG=$(PICFLAG)" \
36 "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
39 "RUNTEST=$(RUNTEST)" \
40 "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
41 "exec_prefix=$(exec_prefix)" \
42 "infodir=$(infodir)" \
45 "tooldir=$(tooldir)" \
50 "LIBCFLAGS=$(LIBCFLAGS)" \
52 "PICFLAG=$(PICFLAG)" \
56 FLAGS_TO_PASS=$(AM_MAKEFLAGS)
62 SUBDIRS = libc libm $(DOCDIR) .
64 tooldir = $(exec_prefix)/$(host_alias)
65 toollibdir = $(tooldir)/lib$(MULTISUBDIR)
70 toollib_LTLIBRARIES = libm.la libc.la
72 toollib_LIBRARIES = libm.a libc.a
75 noinst_DATA = stmp-targ-include
77 toollib_DATA = $(CRT0)
80 # The functions ldexp, frexp and modf are traditionally supplied in
81 # both libc.a and libm.a. We build them in libm.a and copy them over,
82 # along with some required supporting routines.
84 s_isinf.$(oext) sf_isinf.$(oext) \
85 s_isnan.$(oext) sf_isnan.$(oext) \
86 s_ldexp.$(oext) sf_ldexp.$(oext) \
87 s_frexp.$(oext) sf_frexp.$(oext) \
89 sf_modf.$(oext) s_scalbn.$(oext) \
91 s_finite.$(oext) sf_finite.$(oext) \
92 s_copysign.$(oext) sf_copysign.$(oext) \
97 $(SIGNAL_OBJECTLIST) \
98 $(SYSCALL_OBJECTLIST) \
100 libc/stdlib/objectlist.awk.in \
101 libc/time/objectlist.awk.in \
102 libc/ctype/objectlist.awk.in \
103 libc/string/objectlist.awk.in \
104 libc/locale/objectlist.awk.in \
105 libc/misc/objectlist.awk.in \
106 libc/reent/objectlist.awk.in \
107 libc/errno/objectlist.awk.in \
108 libc/stdio/objectlist.awk.in \
109 $(MACHINE_OBJECTLIST) \
113 libm/$(MATHDIR)/objectlist.awk.in \
114 libm/common/objectlist.awk.in \
115 $(LIBM_MACHINE_OBJECTLIST)
117 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`
119 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`
123 libm_la_DEPENDENCIES = libm-libtool-objectlist
125 # objects listed later in LIBM_OBJECTLISTS will override those listed earlier
126 libm-libtool-objectlist: $(LIBM_OBJECTLISTS)
127 cat $(LIBM_OBJECTLISTS) | $(AWK) '{ libm[$$1] = $$2 }; END { for (x in libm) printf ("%s\n", libm[x]) }' > $@
130 libc_la_DEPENDENCIES = libc-libtool-objectlist
132 # objects listed later in LIBM_OBJECTLISTS and LIBC_OBJECTLISTS will override those listed earlier
133 libc-libtool-objectlist: $(LIBM_OBJECTLISTS) $(LIBC_OBJECTLISTS)
134 cat $(LIBM_OBJECTLISTS) $(LIBC_OBJECTLISTS) | $(AWK) '{ libc[$$1] = $$2 }; END { for (x in libc) printf ("%s\n", libc[x]) }' > $@
138 libc.a: libc/libc.a libm.a
139 rm -rf libc.a libg.a tmp
142 $(AR) x ../libm.a $(MATHOBJS_IN_LIBC) ; \
143 $(AR) x ../libc/libc.a ; \
144 $(AR) $(AR_FLAGS) ../$@ *.o
146 ln libc.a libg.a >/dev/null 2>/dev/null || cp libc.a libg.a
153 ln libm/libm.a $@ >/dev/null 2>/dev/null || cp libm/libm.a $@
159 crt0.o: $(CRT0_DIR)/$(CRT0)
161 ln $(CRT0_DIR)/$(CRT0) $@ >/dev/null 2>/dev/null \
162 || cp $(CRT0_DIR)/$(CRT0) $@
164 $(CRT0_DIR)/$(CRT0): ; @true
166 all-recursive: stmp-targ-include
168 # The targ-include directory just holds the includes files for the
169 # particular system and machine we have been configured for. It is
170 # used while building.
171 stmp-targ-include: config.status
172 -rm -rf targ-include stmp-targ-include
173 mkdir targ-include targ-include/sys targ-include/machine
174 -for i in $(srcdir)/libc/machine/$(machine_dir)/machine/*.h; do \
175 if [ -f $$i ]; then \
176 cp $$i targ-include/machine/`basename $$i`; \
179 -for i in $(srcdir)/libc/sys/$(sys_dir)/include/*.h; do \
180 if [ -f $$i ]; then \
181 cp $$i targ-include/`basename $$i`; \
184 -for i in $(srcdir)/libc/sys/$(sys_dir)/sys/*.h; do \
185 if [ -f $$i ]; then \
186 cp $$i targ-include/sys/`basename $$i`; \
191 CLEANFILES = targ-include stmp-targ-include
193 install-data-local: install-toollibLIBRARIES
196 rm -f $(DESTDIR)$(toollibdir)/libg.a
197 ln $(DESTDIR)$(toollibdir)/libc.a $(DESTDIR)$(toollibdir)/libg.a >/dev/null 2>/dev/null || cp $(DESTDIR)$(toollibdir)/libc.a $(DESTDIR)$(toollibdir)/libg.a
199 $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
200 -if [ -z "$(MULTISUBDIR)" ]; then \
201 $(mkinstalldirs) $(DESTDIR)$(tooldir)/include; \
202 for i in $(srcdir)/libc/include/*.h; do \
203 $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/`basename $$i`; \
205 $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/machine; \
206 for i in $(srcdir)/libc/include/machine/*.h; do \
207 $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/machine/`basename $$i`; \
209 for i in $(srcdir)/libc/machine/$(machine_dir)/machine/*.h; do \
210 if [ -f $$i ]; then \
211 $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/machine/`basename $$i`; \
214 $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/sys; \
215 for i in $(srcdir)/libc/include/sys/*.h; do \
216 $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/sys/`basename $$i`; \
218 for i in $(srcdir)/libc/sys/$(sys_dir)/sys/*.h; do \
219 if [ -f $$i ]; then \
220 $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/sys/`basename $$i`; \
223 for i in $(srcdir)/libc/sys/$(sys_dir)/include/*.h; do \
224 if [ -f $$i ]; then \
225 $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/`basename $$i`; \
230 # Force makedoc to be built before building info files.
231 info-recursive: doc/makedoc
232 dvi-recursive: doc/makedoc
234 cd doc && $(MAKE) all
236 CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
239 .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
240 maintainer-clean-multi
242 all-recursive: all-multi
243 mostlyclean-recursive: mostlyclean-multi
244 clean-recursive: clean-multi
245 distclean-recursive: distclean-multi
246 maintainer-clean-recursive: maintainer-clean-multi
249 $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
251 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
253 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
255 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
256 maintainer-clean-multi:
257 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean