]> sourceware.org Git - newlib-cygwin.git/blob - newlib/Makefile.am
* Makefile.am: Fix space vs. tab problem in install-data-local.
[newlib-cygwin.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 $(DESTDIR)$(toollibdir)/libg.a
133 ln $(DESTDIR)$(toollibdir)/libc.a $(DESTDIR)$(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 $(DESTDIR)$(tooldir)/include/`basename $$i`; \
138 done; \
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 for i in $(srcdir)/libc/include/sys/*.h; do \
148 $(INSTALL_DATA) $$i $(DESTDIR)$(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 $(DESTDIR)$(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 $(DESTDIR)$(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=
This page took 0.04507 seconds and 6 git commands to generate.