## Process this file with automake to generate Makefile.in AUTOMAKE_OPTIONS = dejagnu ACLOCAL_AMFLAGS = -I . -I .. -I ../config # Variables that will accumulate in subdirs. CLEANFILES = EXTRA_DIST = EXTRA_PROGRAMS = PHONY = SUFFIXES = check_PROGRAMS = info_TEXINFOS = noinst_DATA = INSTALL_DATA_LOCAL = # The newlib hardware floating-point routines have been disabled due to # inaccuracy. If you wish to work on them, you will need to edit the # configure.in file to re-enable the configuration option. By default, # the NEWLIB_HW_FP variable will always be false. if NEWLIB_HW_FP MATHDIR = mathfp else MATHDIR = math endif # Work around what appears to be a GNU make bug handling MAKEFLAGS # values defined in terms of make variables, as is the case for CC and # friends when we are called from the top level Makefile. AM_MAKEFLAGS = \ "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ "CFLAGS=$(CFLAGS)" \ "CCASFLAGS=$(CCASFLAGS)" \ "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ "INSTALL=$(INSTALL)" \ "LDFLAGS=$(LDFLAGS)" \ "LIBCFLAGS=$(LIBCFLAGS)" \ "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ "MAKE=$(MAKE)" \ "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ "PICFLAG=$(PICFLAG)" \ "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ "SHELL=$(SHELL)" \ "EXPECT=$(EXPECT)" \ "RUNTEST=$(RUNTEST)" \ "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ "exec_prefix=$(exec_prefix)" \ "infodir=$(infodir)" \ "libdir=$(libdir)" \ "prefix=$(prefix)" \ "tooldir=$(tooldir)" \ "top_toollibdir=$(toollibdir)" \ "AR=$(AR)" \ "AS=$(AS)" \ "CC=$(CC_FOR_NEWLIB)" \ "LD=$(LD)" \ "LIBCFLAGS=$(LIBCFLAGS)" \ "NM=$(NM)" \ "PICFLAG=$(PICFLAG)" \ "RANLIB=$(RANLIB)" \ "DESTDIR=$(DESTDIR)" FLAGS_TO_PASS=$(AM_MAKEFLAGS) srcroot = $(top_srcdir)/.. tooldir = $(exec_prefix)/$(host_alias) toollibdir = $(tooldir)/lib$(MULTISUBDIR) # These are useful for standalone object files like crt0.o. AM_CFLAGS = $(AM_CFLAGS_$(subst /,_,$(@D))) $(AM_CFLAGS_$(subst /,_,$(@D)_$( 0; --i) { \ count = split($$i, parts, "/"); \ name = parts[count]; \ if (!(name in seen)) { \ objs[i] = $$i; \ seen[name] = 1; \ } \ } \ for (i in objs) \ print objs[i]; \ }' # Recursive Wildcard function rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2)$(filter $(subst *,%,$2),$d)) # The functions ldexp, frexp and modf are traditionally supplied in # both libc.a and libm.a. We build them in libm.a and copy them over, # along with some required supporting routines. MATHOBJS_IN_LIBC = \ libm_a-s_fpclassify.o libm_a-sf_fpclassify.o \ libm_a-s_isinf.o libm_a-sf_isinf.o \ libm_a-s_isnan.o libm_a-sf_isnan.o \ libm_a-s_isinfd.o libm_a-sf_isinff.o \ libm_a-s_isnand.o libm_a-sf_isnanf.o \ libm_a-s_nan.o libm_a-sf_nan.o \ libm_a-s_ldexp.o libm_a-sf_ldexp.o \ libm_a-s_frexp.o libm_a-sf_frexp.o libm_a-frexpl.o \ libm_a-s_modf.o \ libm_a-sf_modf.o libm_a-s_scalbn.o \ libm_a-sf_scalbn.o \ libm_a-s_finite.o libm_a-sf_finite.o \ libm_a-s_copysign.o libm_a-sf_copysign.o ## Place the libm_a objects in libc/ to keep the top dir tidy. stamp-libc-math-objects: libm.a $(AM_V_GEN)cd libc && $(AR) x ../$< $(MATHOBJS_IN_LIBC) $(AM_V_at)touch $@ CLEANFILES += $(MATHOBJS_IN_LIBC) libc_a_SOURCES = libc_a_CFLAGS = $(AM_CFLAGS) $(libc_a_CFLAGS_$(subst /,_,$(@D))) $(libc_a_CFLAGS_$(subst /,_,$(@D)_$(/dev/null 2>/dev/null || cp libc.a libg.a libm_a_SOURCES = libm_a_CFLAGS = $(AM_CFLAGS) $(libm_a_CFLAGS_$(subst /,_,$(@D))) $(libm_a_CFLAGS_$(subst /,_,$(@D)_$(/dev/null 2>/dev/null || cp $< $@ $(BUILD_MULTISUBDIR)/libc.a: libc.a $(BUILD_MULTISUBDIR) $(AM_V_at)rm -f $@ $(AM_V_GEN)ln $< $@ >/dev/null 2>/dev/null || cp $< $@ $(BUILD_MULTISUBDIR)/libg.a: libg.a ${BUILD_MULTISUBDIR} $(AM_V_at)rm -f $@ $(AM_V_GEN)ln $< $@ >/dev/null 2>/dev/null || cp $< $@ $(BUILD_MULTISUBDIR)/libm.a: libm.a $(BUILD_MULTISUBDIR) $(AM_V_at)rm -f $@ $(AM_V_GEN)ln $< $@ >/dev/null 2>/dev/null || cp $< $@ endif crt0.o: $(CRT0_DIR)$(CRT0) $(AM_V_at)rm -f $@ $(AM_V_GEN)ln $< $@ >/dev/null 2>/dev/null || cp $< $@ $(CRT0_DIR)$(CRT0): stmp-targ-include crt1.o: $(CRT1_DIR)$(CRT1) $(AM_V_at)rm -f $@ $(AM_V_GEN)ln $< $@ >/dev/null 2>/dev/null || cp $< $@ $(CRT1_DIR)$(CRT1): stmp-targ-include targ-include: $(AM_V_GEN)$(MKDIR_P) $@ targ-include/newlib.h: targ-include/_newlib_version.h targ-include/sys targ-include/machine targ-include/bits: targ-include/_newlib_version.h targ-include/newlib.h $(AM_V_GEN)$(MKDIR_P) $@ targ-include/newlib.h: newlib.h targ-include $(AM_V_GEN)cp newlib.h $@ targ-include/_newlib_version.h: _newlib_version.h targ-include $(AM_V_GEN)cp _newlib_version.h $@ # The targ-include directory just holds the includes files for the # particular system and machine we have been configured for. It is # used while building. TARG_INCLUDE_CP_DIR = \ ; srcdir="$(srcdir)/libc/$$s"; dstdir="targ-include/$$d"; \ if (cd $$srcdir 2>/dev/null && [ "`echo *.h`" != "*.h" ]); then cp $$srcdir/*.h $$dstdir/; fi stmp-targ-include: config.status $(AM_V_GEN)rm -rf targ-include stmp-targ-include $(AM_V_at)$(MAKE) targ-include/sys \ targ-include/machine \ targ-include/bits $(AM_V_at)if [ -n "$(shared_machine_dir)" ]; then \ s=machine/$(shared_machine_dir)/machine d=machine $(TARG_INCLUDE_CP_DIR) || exit $$?; \ s=machine/$(shared_machine_dir)/sys d=sys $(TARG_INCLUDE_CP_DIR) || exit $$?; \ s=machine/$(shared_machine_dir)/include d= $(TARG_INCLUDE_CP_DIR) || exit $$?; \ fi $(AM_V_at)s=machine/$(machine_dir)/machine d=machine $(TARG_INCLUDE_CP_DIR) $(AM_V_at)s=machine/$(machine_dir)/sys d=sys $(TARG_INCLUDE_CP_DIR) $(AM_V_at)s=machine/$(machine_dir)/include d= $(TARG_INCLUDE_CP_DIR) $(AM_V_at)s=sys/$(sys_dir)/include d= $(TARG_INCLUDE_CP_DIR) $(AM_V_at)for i in $(call rwildcard,$(srcdir)/libc/sys/$(sys_dir)/include/,*.h); do \ f=`echo $$i | sed s:$(srcdir)/libc/sys/$(sys_dir)/include/::`; \ $(MKDIR_P) targ-include/`dirname $$f`; \ cp $$i targ-include/$$f; \ done $(AM_V_at)s=sys/$(sys_dir)/sys d=sys $(TARG_INCLUDE_CP_DIR) $(AM_V_at)s=sys/$(sys_dir)/bits d=bits $(TARG_INCLUDE_CP_DIR) $(AM_V_at)s=sys/$(sys_dir)/machine d=machine $(TARG_INCLUDE_CP_DIR) $(AM_V_at)s=sys/$(sys_dir)/machine/$(machine_dir) d=machine $(TARG_INCLUDE_CP_DIR) $(AM_V_at)s=sys/$(sys_dir)/machine/$(machine_dir)/include d=machine $(TARG_INCLUDE_CP_DIR) $(AM_V_at)$(MAKE) targ-include/newlib.h $(AM_V_at)touch $@ CLEANFILES += stmp-targ-include ## We hook install-multi because this Makefile doesn't have any exec targets, ## only data targets. If that ever changes, this should be removed and the ## install-exec-local in ../multilib.am will kick in. install-data-local: install-toollibLIBRARIES install-multi $(INSTALL_DATA_LOCAL) rm -f $(DESTDIR)$(toollibdir)/libg.a ln $(DESTDIR)$(toollibdir)/libc.a $(DESTDIR)$(toollibdir)/libg.a >/dev/null 2>/dev/null || cp $(DESTDIR)$(toollibdir)/libc.a $(DESTDIR)$(toollibdir)/libg.a -if [ -z "$(MULTISUBDIR)" ]; then \ $(mkinstalldirs) $(DESTDIR)$(tooldir)/include; \ for i in $(srcdir)/libc/include/*.h; do \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/`basename $$i`; \ done; \ $(INSTALL_DATA) newlib.h $(DESTDIR)$(tooldir)/include/newlib.h; \ $(INSTALL_DATA) _newlib_version.h $(DESTDIR)$(tooldir)/include/_newlib_version.h; \ $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/machine; \ for i in $(srcdir)/libc/include/machine/*.h; do \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/machine/`basename $$i`; \ done; \ if [ -n "$(shared_machine_dir)" ]; then \ for i in $(srcdir)/libc/machine/$(shared_machine_dir)/machine/*.h; do \ if [ -f $$i ]; then \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/machine/`basename $$i`; \ else true; fi ; \ done; \ fi ; \ for i in $(srcdir)/libc/machine/$(machine_dir)/machine/*.h; do \ if [ -f $$i ]; then \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/machine/`basename $$i`; \ else true; fi ; \ done; \ $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/rpc; \ for i in $(srcdir)/libc/include/rpc/*.h; do \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/rpc/`basename $$i`; \ done; \ $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/ssp; \ for i in $(srcdir)/libc/include/ssp/*.h; do \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/ssp/`basename $$i`; \ done; \ $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/sys; \ for i in $(srcdir)/libc/include/sys/*.h; do \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/sys/`basename $$i`; \ done; \ if [ -n "$(shared_machine_dir)" ]; then \ for i in $(srcdir)/libc/machine/$(shared_machine_dir)/sys/*.h; do \ if [ -f $$i ]; then \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/sys/`basename $$i`; \ else true; fi ; \ done ; \ for i in $(srcdir)/libc/machine/$(shared_machine_dir)/include/*.h; do \ if [ -f $$i ]; then \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/`basename $$i`; \ else true; fi ; \ done ; \ fi ; \ for i in $(srcdir)/libc/machine/$(machine_dir)/sys/*.h; do \ if [ -f $$i ]; then \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/sys/`basename $$i`; \ else true; fi ; \ done ; \ for i in $(srcdir)/libc/machine/$(machine_dir)/include/*.h; do \ if [ -f $$i ]; then \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/`basename $$i`; \ else true; fi ; \ done ; \ for i in $(srcdir)/libc/sys/$(sys_dir)/sys/*.h; do \ if [ -f $$i ]; then \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/sys/`basename $$i`; \ else true; fi ; \ done ; \ $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/bits; \ for i in $(srcdir)/libc/sys/$(sys_dir)/bits/*.h; do \ if [ -f $$i ]; then \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/bits/`basename $$i`; \ else true; fi ; \ done ; \ for i in $(srcdir)/libc/sys/$(sys_dir)/machine/*.h; do \ if [ -f $$i ]; then \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/machine/`basename $$i`; \ else true; fi ; \ done ; \ for i in $(call rwildcard,$(srcdir)/libc/sys/$(sys_dir)/include/,*.h); do \ f=`echo $$i | sed s:$(srcdir)/libc/sys/$(sys_dir)/include/::`; \ $(MKDIR_P) $(DESTDIR)$(tooldir)/`dirname $$f`; \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/`dirname $$f`; \ done ; \ for i in $(srcdir)/libc/sys/$(sys_dir)/machine/$(machine_dir)/include/*.h; do \ if [ -f $$i ]; then \ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/machine/`basename $$i`; \ else true; fi ; \ done ; \ for i in $(NO_INCLUDE_LIST); do \ if [ -f $(DESTDIR)$(tooldir)/include/$$i ]; then \ rm $(DESTDIR)$(tooldir)/include/$$i; \ else true; fi ; \ done ; \ else true; fi # Generate Unicode data tables for libc/string/wcwidth and libc/ctype/??w* unidata: cd $(srcdir)/libc/string; ./mkunidata -u cd $(srcdir)/libc/ctype; ./mkunidata -u # Force makedoc to be built before building info files. info-recursive dvi-recursive: doc/makedoc$(EXEEXT_FOR_BUILD) CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host include ../multilib.am check-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=check multi-do # $(MAKE) MAKEOVERRIDES= # dejagnu support RUNTESTFLAGS= site.exp: Makefile @echo 'Making a new site.exp file...' @test ! -f site.bak || rm -f site.bak @echo '## these variables are automatically generated by make ##' > $@-t @echo '# Do not edit here. If you wish to override these values' >> $@-t @echo '# edit the last section' >> $@-t @echo 'set tool $(DEJATOOL)' >> $@-t @echo 'set tool_version $(VERSION)' >> $@-t @echo 'set srcdir $(srcdir)/testsuite' >> $@-t @echo 'set objdir' `pwd` >> $@-t @echo 'set tmpdir' `pwd`/testsuite >> $@-t @echo 'set multibuildtop ./$(MULTIBUILDTOP)' >> $@-t @echo 'set host_alias $(build_alias)' >> $@-t @echo 'set host_triplet $(build_triplet)' >> $@-t @echo 'set target_alias $(host_alias)' >> $@-t @echo 'set target_triplet $(host_triplet)' >> $@-t @echo '## All variables above are generated by configure. Do Not Edit ##' >> $@-t @test ! -f site.exp || sed '1,/^## All variables above are.*##/ d' site.exp >> $@-t @test ! -f site.exp || mv site.exp site.bak @mv $@-t site.exp check-DEJAGNU: site.exp @if [ -d testsuite ] ; then \ true ; \ else \ mkdir testsuite ; \ fi @rm -f testsuite/site.exp @cp site.exp testsuite/site.exp @rootme=`pwd` ; \ export rootme ; \ srcdir=`cd ${srcdir}; pwd` ; \ export srcdir ; \ EXPECT=`if [ -f $${rootme}/${MULTIBUILDTOP}../../expect/expect ] ; then \ echo $${rootme}/${MULTIBUILDTOP}../../expect/expect ; \ else \ echo expect ; \ fi` ; \ export EXPECT ; \ echo "Found expect: $${EXPECT}" ; \ if [ -f $(top_builddir)/$(MULTIBUILDTOP)../../expect/expect ] ; then \ TCL_LIBRARY=`cd $(top_srcdir)/../tcl/library && pwd` ; \ export TCL_LIBRARY ; \ echo "Found TCL library directory: $${TCL_LIBRARY}" ; \ fi ; \ RUNTEST=`if [ -f $${srcdir}/../dejagnu/runtest ] ; then \ echo $${srcdir}/../dejagnu/runtest ; \ else \ echo runtest ; \ fi` ; \ export RUNTEST ; \ echo "Found runtest: $${RUNTEST}" ; \ cd testsuite ; \ if $(SHELL) -c "$$RUNTEST --version" > /dev/null 2>&1 ; then \ $$RUNTEST --tool $(DEJATOOL) --srcdir $${srcdir}/testsuite $(RUNTESTFLAGS) ; \ : ; \ else \ echo "WARNING: could not find \`runtest'" 1>&2 ; \ fi clean-local: -rm -rf targ-include newlib.h _newlib_version.h stamp-* # Workaround bad automake/texinfo interactions. # https://bugs.gnu.org/23599 TEXI2DVI = texi2dvi -E TEXINFO_TEX = ../texinfo/texinfo.tex XMLTO_MAN_QUIET_=--stringparam man.output.quietly=1 XMLTO_MAN_QUIET=$(XMLTO_MAN_QUIET_$(V)) if HAVE_DOC include doc/Makefile.inc endif include libc/Makefile.inc include libm/Makefile.inc .PHONY: $(PHONY)