OSDN Git Service

b00d9265b29bd61224e6d34290a9d6b111396654
[pf3gnuchains/pf3gnuchains3x.git] / newlib / Makefile.am
1 ## Process this file with automake to generate Makefile.in
2
3 AUTOMAKE_OPTIONS = cygnus
4
5 # Multilib support variables.
6 MULTISRCTOP =
7 MULTIBUILDTOP =
8 MULTIDIRS =
9 MULTISUBDIR =
10 MULTIDO = true
11 MULTICLEAN = true
12
13 # Work around what appears to be a GNU make bug handling MAKEFLAGS
14 # values defined in terms of make variables, as is the case for CC and
15 # friends when we are called from the top level Makefile.
16 AM_MAKEFLAGS = \
17         "AR_FLAGS=$(AR_FLAGS)" \
18         "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
19         "CFLAGS=$(CFLAGS)" \
20         "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
21         "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
22         "LDFLAGS=$(LDFLAGS)" \
23         "LIBCFLAGS=$(LIBCFLAGS)" \
24         "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
25         "MAKE=$(MAKE)" \
26         "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
27         "PICFLAG=$(PICFLAG)" \
28         "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
29         "SHELL=$(SHELL)" \
30         "EXPECT=$(EXPECT)" \
31         "RUNTEST=$(RUNTEST)" \
32         "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
33         "exec_prefix=$(exec_prefix)" \
34         "infodir=$(infodir)" \
35         "libdir=$(libdir)" \
36         "prefix=$(prefix)" \
37         "tooldir=$(tooldir)" \
38         "AR=$(AR)" \
39         "AS=$(AS)" \
40         "CC=$(CC)" \
41         "LD=$(LD)" \
42         "LIBCFLAGS=$(LIBCFLAGS)" \
43         "NM=$(NM)" \
44         "PICFLAG=$(PICFLAG)" \
45         "RANLIB=$(RANLIB)" \
46         "DESTDIR=$(DESTDIR)"
47
48 FLAGS_TO_PASS=$(AM_MAKEFLAGS)
49
50 if HAVE_DOC
51 DOCDIR = doc
52 endif
53
54 SUBDIRS = libc libm $(DOCDIR) .
55
56 tooldir = $(exec_prefix)/$(host_alias)
57 toollibdir = $(tooldir)/lib$(MULTISUBDIR)
58
59 AR_FLAGS = rc
60
61 toollib_LIBRARIES = libm.a libc.a
62 toollib_DATA = $(CRT0)
63 noinst_DATA = stmp-targ-include
64
65 # The functions ldexp, frexp and modf are traditionally supplied in
66 # both libc.a and libm.a.  We build them in libm.a and copy them over,
67 # along with some required supporting routines.
68 MATHOBJS_IN_LIBC = \
69         s_isinf.o sf_isinf.o \
70         s_isnan.o sf_isnan.o \
71         s_ldexp.o sf_ldexp.o \
72         s_frexp.o sf_frexp.o s_modf.o sf_modf.o \
73         s_scalbn.o sf_scalbn.o s_finite.o sf_finite.o \
74         s_copysign.o sf_copysign.o s_infconst.o
75
76 libc.a: libc/libc.a libm.a
77         rm -rf libc.a libg.a tmp
78         mkdir tmp
79         cd tmp; \
80          $(AR) x ../libm.a $(MATHOBJS_IN_LIBC) ; \
81          $(AR) x ../libc/libc.a ; \
82          $(AR) $(AR_FLAGS) ../$@ *.o
83         $(RANLIB) libc.a
84         ln libc.a libg.a >/dev/null 2>/dev/null || cp libc.a libg.a
85         rm -rf tmp
86
87 libc/libc.a: ; @true
88
89 libm.a: libm/libm.a
90         rm -f $@
91         ln libm/libm.a $@ >/dev/null 2>/dev/null || cp libm/libm.a $@
92
93 libm/libm.a: ; @true
94
95 crt0.o: $(CRT0_DIR)/$(CRT0)
96         rm -f $@
97         ln $(CRT0_DIR)/$(CRT0) $@ >/dev/null 2>/dev/null \
98          || cp $(CRT0_DIR)/$(CRT0) $@
99
100 $(CRT0_DIR)/$(CRT0): ; @true
101
102 all-recursive: stmp-targ-include
103
104 # The targ-include directory just holds the includes files for the
105 # particular system and machine we have been configured for.  It is
106 # used while building.
107 stmp-targ-include: config.status
108         -rm -rf targ-include stmp-targ-include
109         mkdir targ-include targ-include/sys targ-include/machine
110         -for i in $(srcdir)/libc/machine/$(machine_dir)/machine/*.h; do \
111             if [ -f $$i ]; then \
112               cp $$i targ-include/machine/`basename $$i`; \
113             else true; fi ; \
114           done
115         -for i in $(srcdir)/libc/sys/$(sys_dir)/include/*.h; do \
116             if [ -f $$i ]; then \
117               cp $$i targ-include/`basename $$i`; \
118             else true; fi ; \
119           done
120         -for i in $(srcdir)/libc/sys/$(sys_dir)/sys/*.h; do \
121             if [ -f $$i ]; then \
122               cp $$i targ-include/sys/`basename $$i`; \
123             else true; fi ; \
124           done
125         touch $@
126
127 CLEANFILES = targ-include stmp-targ-include
128
129 install-data-local:     install-toollibLIBRARIES
130         rm -f $(DESTDIR)$(toollibdir)/libg.a
131         ln $(DESTDIR)$(toollibdir)/libc.a $(DESTDIR)$(toollibdir)/libg.a >/dev/null 2>/dev/null || cp $(DESTDIR)$(toollibdir)/libc.a $(DESTDIR)$(toollibdir)/libg.a
132         $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
133         -if [ -z "$(MULTISUBDIR)" ]; then \
134           $(mkinstalldirs) $(DESTDIR)$(tooldir)/include; \
135           for i in $(srcdir)/libc/include/*.h; do \
136            $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/`basename $$i`; \
137           done; \
138           $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/machine; \
139           for i in $(srcdir)/libc/include/machine/*.h; do \
140            $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/machine/`basename $$i`; \
141           done; \
142           for i in $(srcdir)/libc/machine/$(machine_dir)/machine/*.h; do \
143             if [ -f $$i ]; then \
144              $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/machine/`basename $$i`; \
145             else true; fi ; \
146           done; \
147           $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/sys; \
148           for i in $(srcdir)/libc/include/sys/*.h; do \
149            $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/sys/`basename $$i`; \
150           done; \
151           for i in $(srcdir)/libc/sys/$(sys_dir)/sys/*.h; do \
152             if [ -f $$i ]; then \
153              $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/sys/`basename $$i`; \
154             else true; fi ; \
155           done ; \
156           for i in $(srcdir)/libc/sys/$(sys_dir)/include/*.h; do \
157             if [ -f $$i ]; then \
158              $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/`basename $$i`; \
159             else true; fi ; \
160           done ; \
161         else true; fi
162
163 # Force makedoc to be built before building info files.
164 info-recursive: doc/makedoc
165 dvi-recursive: doc/makedoc
166 doc/makedoc:
167         cd doc && $(MAKE) all
168
169 CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
170
171 # Multilib support.
172 .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
173         maintainer-clean-multi
174
175 all-recursive: all-multi
176 mostlyclean-recursive: mostlyclean-multi
177 clean-recursive: clean-multi
178 distclean-recursive: distclean-multi
179 maintainer-clean-recursive: maintainer-clean-multi
180
181 all-multi:
182         $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
183 mostlyclean-multi:
184         $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
185 clean-multi:
186         $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
187 distclean-multi:
188         $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
189 maintainer-clean-multi:
190         $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
191
192 MAKEOVERRIDES=