From f2b053f49ed2bd7b4da8cf4ed3a608dc2f425c2b Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 13 Feb 2022 03:03:12 -0500 Subject: [PATCH] newlib: separate out libg from libc Make this a separate target from libc so that we can migrate libc over to automake more easily. Having it integrated into the libc target is difficult to handle when using automake rules which expect a one-to-one mapping between names & inputs. --- newlib/Makefile.am | 12 +++++++++--- newlib/Makefile.in | 20 +++++++++++--------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/newlib/Makefile.am b/newlib/Makefile.am index 6d3b60b33..3e4b824d7 100644 --- a/newlib/Makefile.am +++ b/newlib/Makefile.am @@ -4,6 +4,7 @@ AUTOMAKE_OPTIONS = dejagnu ACLOCAL_AMFLAGS = -I . -I .. -I ../config # Variables that will accumulate in subdirs. +CLEANFILES = PHONY = SUFFIXES = info_TEXINFOS = @@ -70,6 +71,7 @@ noinst_DATA += stmp-targ-include toollib_LIBRARIES = libm.a \ libc.a +noinst_DATA += libg.a if HAVE_MULTISUBDIR BUILD_MULTISUBDIR = $(builddir)$(MULTISUBDIR) if HAVE_CRT0 @@ -80,6 +82,8 @@ endif toollib_DATA = $(CRT0) $(CRT1) +CLEANFILES += libg.a + # 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. @@ -99,18 +103,20 @@ MATHOBJS_IN_LIBC = \ $(lpfx)s_copysign.o $(lpfx)sf_copysign.o libc.a: libc/libc.a libm.a - rm -rf libc.a libg.a tmp + rm -rf libc.a tmp mkdir tmp cd tmp; \ $(AR) x ../libm.a $(MATHOBJS_IN_LIBC) ; \ $(AR) x ../libc/libc.a ; \ $(AR) $(AR_FLAGS) ../$@ *.o $(RANLIB) libc.a - ln libc.a libg.a >/dev/null 2>/dev/null || cp libc.a libg.a rm -rf tmp libc/libc.a: ; @true +libg.a: libc.a + $(AM_V_GEN)ln libc.a libg.a >/dev/null 2>/dev/null || cp libc.a libg.a + libm.a: libm/libm.a rm -f $@ ln $< $@ >/dev/null 2>/dev/null || cp $< $@ @@ -247,7 +253,7 @@ stmp-targ-include: config.status $(MAKE) targ-include/newlib.h touch $@ -CLEANFILES = stmp-targ-include +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 diff --git a/newlib/Makefile.in b/newlib/Makefile.in index c952082bf..f26bb68b5 100644 --- a/newlib/Makefile.in +++ b/newlib/Makefile.in @@ -442,10 +442,16 @@ AUTOMAKE_OPTIONS = dejagnu ACLOCAL_AMFLAGS = -I . -I .. -I ../config # Variables that will accumulate in subdirs. +CLEANFILES = libg.a stmp-targ-include libc/targetdep.tex \ + libc/targetdep.tex.stamp $(LIBC_CHEWOUT_FILES) \ + $(LIBC_DOCBOOK_OUT_FILES) libc/*.xml libc/*.xml.stamp libc/*.3 \ + libm/targetdep.tex libm/targetdep.tex.stamp \ + $(LIBM_CHEWOUT_FILES) $(LIBM_DOCBOOK_OUT_FILES) libm/*.xml \ + libm/*.xml.stamp libm/*.3 PHONY = $(am__append_4) SUFFIXES = $(am__append_5) info_TEXINFOS = libc/libc.texi libm/libm.texi -noinst_DATA = stmp-targ-include $(am__append_1) $(am__append_2) \ +noinst_DATA = stmp-targ-include libg.a $(am__append_1) $(am__append_2) \ $(am__append_3) @NEWLIB_HW_FP_FALSE@MATHDIR = math @@ -522,12 +528,6 @@ MATHOBJS_IN_LIBC = \ $(lpfx)s_finite.o $(lpfx)sf_finite.o \ $(lpfx)s_copysign.o $(lpfx)sf_copysign.o -CLEANFILES = stmp-targ-include libc/targetdep.tex \ - libc/targetdep.tex.stamp $(LIBC_CHEWOUT_FILES) \ - $(LIBC_DOCBOOK_OUT_FILES) libc/*.xml libc/*.xml.stamp libc/*.3 \ - libm/targetdep.tex libm/targetdep.tex.stamp \ - $(LIBM_CHEWOUT_FILES) $(LIBM_DOCBOOK_OUT_FILES) libm/*.xml \ - libm/*.xml.stamp libm/*.3 CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host MULTISRCTOP = MULTIBUILDTOP = @@ -1396,18 +1396,20 @@ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ libc.a: libc/libc.a libm.a - rm -rf libc.a libg.a tmp + rm -rf libc.a tmp mkdir tmp cd tmp; \ $(AR) x ../libm.a $(MATHOBJS_IN_LIBC) ; \ $(AR) x ../libc/libc.a ; \ $(AR) $(AR_FLAGS) ../$@ *.o $(RANLIB) libc.a - ln libc.a libg.a >/dev/null 2>/dev/null || cp libc.a libg.a rm -rf tmp libc/libc.a: ; @true +libg.a: libc.a + $(AM_V_GEN)ln libc.a libg.a >/dev/null 2>/dev/null || cp libc.a libg.a + libm.a: libm/libm.a rm -f $@ ln $< $@ >/dev/null 2>/dev/null || cp $< $@