[PATCH] newlib: merge doc into top-level Makefile

Mike Frysinger vapier@gentoo.org
Thu Nov 11 02:07:14 GMT 2021


Avoid a recursive make with this tiny subdir to speed things up a bit.
---
 newlib/Makefile.am      |   29 +-
 newlib/Makefile.in      |   66 +-
 newlib/configure        |   36 +-
 newlib/configure.ac     |   26 +-
 newlib/doc/Makefile.am  |   28 -
 newlib/doc/Makefile.in  |  368 ---
 newlib/doc/aclocal.m4   | 1012 ---------
 newlib/doc/configure    | 4804 ---------------------------------------
 newlib/doc/configure.ac |   43 -
 newlib/doc/local.mk     |   20 +
 10 files changed, 135 insertions(+), 6297 deletions(-)
 delete mode 100644 newlib/doc/Makefile.am
 delete mode 100644 newlib/doc/Makefile.in
 delete mode 100644 newlib/doc/aclocal.m4
 delete mode 100755 newlib/doc/configure
 delete mode 100644 newlib/doc/configure.ac
 create mode 100644 newlib/doc/local.mk

diff --git a/newlib/Makefile.am b/newlib/Makefile.am
index 3a8b99fce3e6..1ab75f9957e7 100644
--- a/newlib/Makefile.am
+++ b/newlib/Makefile.am
@@ -1,8 +1,12 @@
 ## Process this file with automake to generate Makefile.in
 
-AUTOMAKE_OPTIONS = cygnus dejagnu
+AUTOMAKE_OPTIONS = cygnus dejagnu subdir-objects
 ACLOCAL_AMFLAGS = -I . -I ..
 
+# Variables that will accumulate in subdirs.
+PHONY =
+noinst_DATA =
+
 # Multilib support variables.
 MULTISRCTOP =
 MULTIBUILDTOP =
@@ -63,21 +67,15 @@ AM_MAKEFLAGS = \
 
 FLAGS_TO_PASS=$(AM_MAKEFLAGS)
 
-if HAVE_DOC
-DOCDIR = doc
-else
-DOCDIR =
-endif
-
 SUBDIRS = libc libm \
-	$(DOCDIR) . $(EXTRA_DIRS)
+	. $(EXTRA_DIRS)
 
 tooldir = $(exec_prefix)/$(host_alias)
 toollibdir = $(tooldir)/lib$(MULTISUBDIR)
 
 AR_FLAGS = rc
 
-noinst_DATA = stmp-targ-include
+noinst_DATA += stmp-targ-include
 
 if USE_LIBTOOL
 toollib_LTLIBRARIES = libm.la \
@@ -424,10 +422,7 @@ unidata:
 	cd $(srcdir)/libc/ctype; ./mkunidata -u
 
 # Force makedoc to be built before building info files.
-info-recursive: doc/makedoc
-dvi-recursive: doc/makedoc
-doc/makedoc:
-	cd doc && $(MAKE) all
+info-recursive dvi-recursive: doc/makedoc$(EXEEXT_FOR_BUILD)
 
 # Recursive targets for man and install-man
 man:
@@ -448,7 +443,7 @@ install-man:
 CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
 
 # Multilib support.
-.PHONY: all-multi check-multi mostlyclean-multi clean-multi distclean-multi \
+PHONY += all-multi check-multi mostlyclean-multi clean-multi distclean-multi \
 	maintainer-clean-multi
 
 all-recursive: all-multi
@@ -540,3 +535,9 @@ check-DEJAGNU: site.exp
 
 clean-local:
 	-rm -rf targ-include newlib.h _newlib_version.h stamp-*
+
+if HAVE_DOC
+include doc/local.mk
+endif
+
+.PHONY: $(PHONY)
diff --git a/newlib/Makefile.in b/newlib/Makefile.in
index 266b61a8a8ad..dede75fcf642 100644
--- a/newlib/Makefile.in
+++ b/newlib/Makefile.in
@@ -55,11 +55,16 @@ build_triplet = @build@
 host_triplet = @host@
 @HAVE_CRT0_TRUE@@HAVE_MULTISUBDIR_TRUE@@USE_LIBTOOL_FALSE@am__append_1 = $(BUILD_MULTISUBDIR)/$(CRT0)
 @HAVE_MULTISUBDIR_TRUE@@USE_LIBTOOL_FALSE@am__append_2 = $(BUILD_MULTISUBDIR)/libc.a $(BUILD_MULTISUBDIR)/libm.a
+DIST_COMMON = $(srcdir)/doc/local.mk NEWS README ChangeLog \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/configure $(am__configure_deps) acconfig.h \
+	$(srcdir)/_newlib_version.hin $(srcdir)/newlib.hin \
+	$(srcdir)/../mkinstalldirs
+
+# We can't use noinst_PROGRAMS, because automake will add $(EXEEXT).
+@HAVE_DOC_TRUE@am__append_3 = doc/makedoc
+@HAVE_DOC_TRUE@am__append_4 = man-cache
 subdir = .
-DIST_COMMON = NEWS README ChangeLog $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am $(top_srcdir)/configure \
-	$(am__configure_deps) acconfig.h $(srcdir)/_newlib_version.hin \
-	$(srcdir)/newlib.hin $(srcdir)/../mkinstalldirs
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../libtool.m4 \
 	$(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \
@@ -171,7 +176,7 @@ RUNTEST = `if test -f $(top_srcdir)/../dejagnu/runtest; then \
 	   else \
 	     echo runtest; \
 	   fi`
-DIST_SUBDIRS = libc libm doc . @EXTRA_DIRS@
+DIST_SUBDIRS = $(SUBDIRS)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
 AR = @AR@
@@ -187,7 +192,6 @@ CCDEPMODE = @CCDEPMODE@
 CC_FOR_BUILD = @CC_FOR_BUILD@
 CC_FOR_NEWLIB = @CC_FOR_NEWLIB@
 CFLAGS = @CFLAGS@
-CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CRT0 = @CRT0@
 CRT0_DIR = @CRT0_DIR@
@@ -204,6 +208,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@
 EXTRA_DIRS = @EXTRA_DIRS@
 FGREP = @FGREP@
 GREP = @GREP@
@@ -306,6 +311,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 shared_machine_dir = @shared_machine_dir@
 sharedstatedir = @sharedstatedir@
@@ -317,9 +323,17 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = cygnus dejagnu
+AUTOMAKE_OPTIONS = cygnus dejagnu subdir-objects
 ACLOCAL_AMFLAGS = -I . -I ..
 
+# Variables that will accumulate in subdirs.
+
+# Multilib support.
+PHONY = all-multi check-multi mostlyclean-multi clean-multi \
+	distclean-multi maintainer-clean-multi $(am__append_4)
+noinst_DATA = stmp-targ-include $(am__append_1) $(am__append_2) \
+	$(am__append_3)
+
 # Multilib support variables.
 MULTISRCTOP = 
 MULTIBUILDTOP = 
@@ -375,15 +389,12 @@ AM_MAKEFLAGS = \
 	"DESTDIR=$(DESTDIR)"
 
 FLAGS_TO_PASS = $(AM_MAKEFLAGS)
-@HAVE_DOC_FALSE@DOCDIR = 
-@HAVE_DOC_TRUE@DOCDIR = doc
 SUBDIRS = libc libm \
-	$(DOCDIR) . $(EXTRA_DIRS)
+	. $(EXTRA_DIRS)
 
 tooldir = $(exec_prefix)/$(host_alias)
 toollibdir = $(tooldir)/lib$(MULTISUBDIR)
 AR_FLAGS = rc
-noinst_DATA = stmp-targ-include $(am__append_1) $(am__append_2)
 @USE_LIBTOOL_TRUE@toollib_LTLIBRARIES = libm.la \
 @USE_LIBTOOL_TRUE@	libc.la
 
@@ -449,6 +460,7 @@ MAKEOVERRIDES =
 
 # dejagnu support
 RUNTESTFLAGS = 
+@HAVE_DOC_TRUE@MKDOC = doc/makedoc$(EXEEXT_FOR_BUILD)
 all: _newlib_version.h newlib.h
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 
@@ -456,7 +468,7 @@ all: _newlib_version.h newlib.h
 .SUFFIXES: .c .lo .o .obj
 am--refresh: Makefile
 	@:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/doc/local.mk $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -479,6 +491,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
 	esac;
+$(srcdir)/doc/local.mk:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	$(SHELL) ./config.status --recheck
@@ -594,10 +607,10 @@ distclean-compile:
 	-rm -f *.tab.c
 
 .c.o:
-	$(COMPILE) -c $<
+	$(COMPILE) -c -o $@ $<
 
 .c.obj:
-	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+	$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
 	$(LTCOMPILE) -c -o $@ $<
@@ -1172,10 +1185,7 @@ unidata:
 	cd $(srcdir)/libc/ctype; ./mkunidata -u
 
 # Force makedoc to be built before building info files.
-info-recursive: doc/makedoc
-dvi-recursive: doc/makedoc
-doc/makedoc:
-	cd doc && $(MAKE) all
+info-recursive dvi-recursive: doc/makedoc$(EXEEXT_FOR_BUILD)
 
 # Recursive targets for man and install-man
 man:
@@ -1193,10 +1203,6 @@ install-man:
 	  fi; \
 	done
 
-# Multilib support.
-.PHONY: all-multi check-multi mostlyclean-multi clean-multi distclean-multi \
-	maintainer-clean-multi
-
 all-recursive: all-multi
 check-recursive: check-multi
 mostlyclean-recursive: mostlyclean-multi
@@ -1281,6 +1287,22 @@ check-DEJAGNU: site.exp
 clean-local:
 	-rm -rf targ-include newlib.h _newlib_version.h stamp-*
 
+# We don't use CFLAGS with CC_FOR_BUILD because here CFLAGS will
+# actually be CFLAGS_FOR_TARGET, and in some cases that will include
+# -Os, which CC_FOR_BUILD may not recognize.
+
+@HAVE_DOC_TRUE@$(MKDOC): doc/makedoc.o
+@HAVE_DOC_TRUE@	$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ $<
+
+@HAVE_DOC_TRUE@doc/makedoc.o: doc/makedoc.c
+@HAVE_DOC_TRUE@	$(MKDIR_P) doc
+@HAVE_DOC_TRUE@	$(CC_FOR_BUILD) -g $(CFLAGS_FOR_BUILD) -o $@ -c $<
+
+@HAVE_DOC_TRUE@man-cache:
+@HAVE_DOC_TRUE@	${srcdir}/doc/makedocbook.py --cache
+
+.PHONY: $(PHONY)
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/newlib/configure b/newlib/configure
index 2771fa263102..ce2fb55d2c43 100755
--- a/newlib/configure
+++ b/newlib/configure
@@ -618,6 +618,7 @@ HAVE_LONG_DOUBLE_FALSE
 HAVE_LONG_DOUBLE_TRUE
 libc_cv_cc_loop_to_function
 libc_cv_initfinit_array
+EXEEXT_FOR_BUILD
 CC_FOR_BUILD
 STDIO64_OBJECTLIST
 UNIX_OBJECTLIST
@@ -838,7 +839,6 @@ CPPFLAGS
 CPP'
 ac_subdirs_all='libc
 libm
-doc
 iconvdata'
 
 # Initialize some variables set by options.
@@ -12237,8 +12237,6 @@ subdirs="$subdirs libm"
 
 if test -z "${with_multisubdir}"; then
   have_multisubdir=no
-  subdirs="$subdirs doc"
-
 else
   have_multisubdir=yes
 fi
@@ -12355,7 +12353,37 @@ fi
 
 # Put a plausible default for CC_FOR_BUILD in Makefile.
 if test -z "$CC_FOR_BUILD"; then
-  CC_FOR_BUILD=gcc
+  if test "x$cross_compiling" = "xno"; then
+    CC_FOR_BUILD='$(CC)'
+  else
+    CC_FOR_BUILD=gcc
+  fi
+fi
+
+
+# Also set EXEEXT_FOR_BUILD.
+if test "x$cross_compiling" = "xno"; then
+  EXEEXT_FOR_BUILD='$(EXEEXT)'
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for build system executable suffix" >&5
+$as_echo_n "checking for build system executable suffix... " >&6; }
+if ${newlib_cv_build_exeext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat > ac_c_test.c << 'EOF'
+int main() {
+/* Nothing needed here */
+}
+EOF
+    ${CC_FOR_BUILD} -o ac_c_test am_c_test.c 1>&5 2>&5
+    newlib_cv_build_exeext=`echo ac_c_test.* | grep -v ac_c_test.c | sed -e s/ac_c_test//`
+    rm -f ac_c_test*
+    test x"${newlib_cv_build_exeext}" = x && newlib_cv_build_exeext=no
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $newlib_cv_build_exeext" >&5
+$as_echo "$newlib_cv_build_exeext" >&6; }
+  EXEEXT_FOR_BUILD=""
+  test x"${newlib_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${newlib_cv_build_exeext}
 fi
 
 
diff --git a/newlib/configure.ac b/newlib/configure.ac
index 67597bb48c4a..49a1b5fddc89 100644
--- a/newlib/configure.ac
+++ b/newlib/configure.ac
@@ -303,7 +303,6 @@ AC_CONFIG_SUBDIRS(libm)
 
 if test -z "${with_multisubdir}"; then
   have_multisubdir=no
-  AC_CONFIG_SUBDIRS(doc)
 else
   have_multisubdir=yes
 fi
@@ -398,10 +397,33 @@ AC_SUBST(STDIO64_OBJECTLIST)
 
 # Put a plausible default for CC_FOR_BUILD in Makefile.
 if test -z "$CC_FOR_BUILD"; then
-  CC_FOR_BUILD=gcc
+  if test "x$cross_compiling" = "xno"; then
+    CC_FOR_BUILD='$(CC)'
+  else
+    CC_FOR_BUILD=gcc
+  fi
 fi
 AC_SUBST(CC_FOR_BUILD)
 
+# Also set EXEEXT_FOR_BUILD.
+if test "x$cross_compiling" = "xno"; then
+  EXEEXT_FOR_BUILD='$(EXEEXT)'
+else
+  AC_CACHE_CHECK([for build system executable suffix], newlib_cv_build_exeext,
+    [cat > ac_c_test.c << 'EOF'
+int main() {
+/* Nothing needed here */
+}
+EOF
+    ${CC_FOR_BUILD} -o ac_c_test am_c_test.c 1>&5 2>&5
+    newlib_cv_build_exeext=`echo ac_c_test.* | grep -v ac_c_test.c | sed -e s/ac_c_test//`
+    rm -f ac_c_test*
+    test x"${newlib_cv_build_exeext}" = x && newlib_cv_build_exeext=no])
+  EXEEXT_FOR_BUILD=""
+  test x"${newlib_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${newlib_cv_build_exeext}
+fi
+AC_SUBST(EXEEXT_FOR_BUILD)
+
 if test "${newlib_elix_level}" -gt "0"; then
 AC_DEFINE_UNQUOTED(_ELIX_LEVEL,${newlib_elix_level})
 fi
diff --git a/newlib/doc/Makefile.am b/newlib/doc/Makefile.am
deleted file mode 100644
index dbebfcc9a94b..000000000000
--- a/newlib/doc/Makefile.am
+++ /dev/null
@@ -1,28 +0,0 @@
-## Process this file with automake to generate Makefile.in
-
-AUTOMAKE_OPTIONS = cygnus
-
-# We can't use noinst_PROGRAMS, because automake will add $(EXEEXT).
-noinst_DATA = makedoc
-
-MKDOC = makedoc$(EXEEXT_FOR_BUILD)
-
-# We don't use CFLAGS with CC_FOR_BUILD because here CFLAGS will
-# actually be CFLAGS_FOR_TARGET, and in some cases that will include
-# -Os, which CC_FOR_BUILD may not recognize.
-
-$(MKDOC): makedoc.o
-	$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $(MKDOC) makedoc.o
-
-makedoc.o: makedoc.c
-	$(CC_FOR_BUILD) -g $(CFLAGS_FOR_BUILD) -c $(srcdir)/makedoc.c
-
-ACLOCAL_AMFLAGS = -I .. -I ../..
-CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
-
-man:
-
-man-cache:
-	${srcdir}/makedocbook.py --cache
-
-.PHONY: man-cache
diff --git a/newlib/doc/Makefile.in b/newlib/doc/Makefile.in
deleted file mode 100644
index 46b0869c7ab3..000000000000
--- a/newlib/doc/Makefile.in
+++ /dev/null
diff --git a/newlib/doc/aclocal.m4 b/newlib/doc/aclocal.m4
deleted file mode 100644
index 782a9e5ded50..000000000000
--- a/newlib/doc/aclocal.m4
+++ /dev/null
diff --git a/newlib/doc/configure b/newlib/doc/configure
deleted file mode 100755
index 68a99892611d..000000000000
--- a/newlib/doc/configure
+++ /dev/null
diff --git a/newlib/doc/configure.ac b/newlib/doc/configure.ac
deleted file mode 100644
index 28428a9082cb..000000000000
--- a/newlib/doc/configure.ac
+++ /dev/null
@@ -1,43 +0,0 @@
-dnl This is the newlib/doc configure.in file.
-dnl Process this file with autoconf to produce a configure script.
-
-AC_PREREQ(2.59)
-AC_INIT([newlib],[NEWLIB_VERSION])
-AC_CONFIG_SRCDIR([makedoc.c])
-
-dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. 
-AC_CONFIG_AUX_DIR(../..)
-
-NEWLIB_CONFIGURE(..)
-
-# Put a plausible default for CC_FOR_BUILD in Makefile.
-if test -z "$CC_FOR_BUILD"; then
-  if test "x$cross_compiling" = "xno"; then
-    CC_FOR_BUILD='$(CC)'
-  else
-    CC_FOR_BUILD=gcc
-  fi
-fi
-AC_SUBST(CC_FOR_BUILD)
-
-# Also set EXEEXT_FOR_BUILD.
-if test "x$cross_compiling" = "xno"; then
-  EXEEXT_FOR_BUILD='$(EXEEXT)'
-else
-  AC_CACHE_CHECK([for build system executable suffix], newlib_cv_build_exeext,
-    [cat > ac_c_test.c << 'EOF'
-int main() {
-/* Nothing needed here */
-}
-EOF
-    ${CC_FOR_BUILD} -o ac_c_test am_c_test.c 1>&5 2>&5
-    newlib_cv_build_exeext=`echo ac_c_test.* | grep -v ac_c_test.c | sed -e s/ac_c_test//`
-    rm -f ac_c_test*
-    test x"${newlib_cv_build_exeext}" = x && newlib_cv_build_exeext=no])
-  EXEEXT_FOR_BUILD=""
-  test x"${newlib_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${newlib_cv_build_exeext}
-fi
-AC_SUBST(EXEEXT_FOR_BUILD)
-
-AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
diff --git a/newlib/doc/local.mk b/newlib/doc/local.mk
new file mode 100644
index 000000000000..64083c3dd600
--- /dev/null
+++ b/newlib/doc/local.mk
@@ -0,0 +1,20 @@
+# We can't use noinst_PROGRAMS, because automake will add $(EXEEXT).
+noinst_DATA += doc/makedoc
+
+MKDOC = doc/makedoc$(EXEEXT_FOR_BUILD)
+
+# We don't use CFLAGS with CC_FOR_BUILD because here CFLAGS will
+# actually be CFLAGS_FOR_TARGET, and in some cases that will include
+# -Os, which CC_FOR_BUILD may not recognize.
+
+$(MKDOC): doc/makedoc.o
+	$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ $<
+
+doc/makedoc.o: doc/makedoc.c
+	$(MKDIR_P) doc
+	$(CC_FOR_BUILD) -g $(CFLAGS_FOR_BUILD) -o $@ -c $<
+
+man-cache:
+	${srcdir}/doc/makedocbook.py --cache
+
+PHONY += man-cache
-- 
2.33.0



More information about the Newlib mailing list