OSDN Git Service

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