[PATCH 5/5] libgloss: merge arm configure script up a level
Mike Frysinger
vapier@gentoo.org
Wed Dec 14 02:37:00 GMT 2022
Move the minor arm-specific logic to a dedicated variable so we can
merge its configure logic up a level.
---
libgloss/Makefile.in | 13 +-
libgloss/arm/Makefile.in | 49 +-
libgloss/arm/acinclude.m4 | 20 +
libgloss/arm/aclocal.m4 | 546 ----
libgloss/arm/configure | 4813 -----------------------------
libgloss/arm/configure.ac | 72 -
libgloss/arm/cpu-init/Makefile.in | 7 +-
libgloss/configure | 207 +-
libgloss/configure.ac | 14 +-
9 files changed, 98 insertions(+), 5643 deletions(-)
create mode 100644 libgloss/arm/acinclude.m4
delete mode 100644 libgloss/arm/aclocal.m4
delete mode 100755 libgloss/arm/configure
delete mode 100644 libgloss/arm/configure.ac
diff --git a/libgloss/arm/Makefile.in b/libgloss/arm/Makefile.in
index 5dab75f750b2..06fae10c1fca 100644
--- a/libgloss/arm/Makefile.in
+++ b/libgloss/arm/Makefile.in
@@ -3,6 +3,7 @@
DESTDIR =
VPATH = @srcdir@ @srcdir@/..
srcdir = @srcdir@
+abs_srcdir = @abs_srcdir@
objdir = .
srcroot = $(srcdir)/../..
objroot = $(objdir)/../..
@@ -17,7 +18,7 @@ bindir = @bindir@
libdir = @libdir@
tooldir = $(exec_prefix)/$(target_alias)
-objtype = @objtype@
+objtype = @ARM_OBJTYPE@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -43,8 +44,6 @@ AR = @AR@
LD = @LD@
RANLIB = @RANLIB@
-SUBDIRS = @subdirs@
-
OBJDUMP = `if [ -f ${objroot}/../binutils/objdump ] ; \
then echo ${objroot}/../binutils/objdump ; \
else t='$(program_transform_name)'; echo objdump | sed -e $$t ; fi`
@@ -52,10 +51,10 @@ OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \
then echo ${objroot}/../binutils/objcopy ; \
else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi`
-@BUILD_CRT0_TRUE@CRT0 = crt0.o
-@BUILD_CRT0_TRUE@CRT0_INSTALL = install-crt0
-@BUILD_CRT0_FALSE@CRT0 =
-@BUILD_CRT0_FALSE@CRT0_INSTALL =
+@ARM_BUILD_CRT0_TRUE@CRT0 = crt0.o
+@ARM_BUILD_CRT0_TRUE@CRT0_INSTALL = install-crt0
+@ARM_BUILD_CRT0_FALSE@CRT0 =
+@ARM_BUILD_CRT0_FALSE@CRT0_INSTALL =
NANO_SCRIPTS=nano.specs
NANO_INSTALL=install-nano
@@ -105,15 +104,6 @@ INCLUDES += `if [ -d ${objroot}/newlib ]; then echo -I$(srcroot)/newlib/libc/mac
# it to link is a good test, so we ignore all the errors for now.
#
all: ${CRT0} ${LINUX_CRT0} ${LINUX_BSP} ${REDBOOT_CRT0} ${REDBOOT_OBJS} ${RDPMON_CRT0} ${RDPMON_BSP} ${RDIMON_CRT0} ${RDIMON_BSP}
- @rootpre=`pwd`/; export rootpre; \
- srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
- for dir in .. ${SUBDIRS}; do \
- if [ x$$dir != x.. ]; then \
- if [ -d $$dir ]; then \
- (cd $$dir; $(MAKE) $(FLAGS_TO_PASS)); \
- else true; fi; \
- else true; fi; \
- done
#
# here's where we build the test programs for each target
@@ -199,30 +189,12 @@ librdimon-v2m.a: $(RDIMON_SEMIHV2M_OBJS)
clean mostlyclean:
rm -f a.out core *.i *.o *-test *.srec *.dis *.x $(SIM_BSP) $(IQ80310_BSP)
- @rootpre=`pwd`/; export rootpre; \
- srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
- for dir in .. ${SUBDIRS}; do \
- if [ x$$dir != x.. ]; then \
- if [ -d $$dir ]; then \
- (cd $$dir; $(MAKE) $(FLAGS_TO_PASS) clean); \
- else true; fi; \
- else true; fi; \
- done
distclean maintainer-clean realclean: clean
- rm -f Makefile config.status *~
+ rm -f Makefile *~
.PHONY: install info install-info clean-info
install: ${CRT0_INSTALL} ${LINUX_INSTALL} ${REDBOOT_INSTALL} ${RDPMON_INSTALL} ${RDIMON_INSTALL} ${IQ80310_INSTALL} ${PID_INSTALL} ${NANO_INSTALL}
- @rootpre=`pwd`/; export rootpre; \
- srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
- for dir in .. ${SUBDIRS}; do \
- if [ x$$dir != x.. ]; then \
- if [ -d $$dir ]; then \
- (cd $$dir; $(MAKE) $(FLAGS_TO_PASS) install); \
- else true; fi; \
- else true; fi; \
- done
install-nano:
${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
@@ -267,8 +239,5 @@ info:
install-info:
clean-info:
-Makefile: Makefile.in config.status @host_makefile_frag_path@
- $(SHELL) config.status
-
-config.status: configure
- $(SHELL) config.status --recheck
+Makefile: Makefile.in ../config.status
+ cd .. && $(SHELL) ./config.status
diff --git a/libgloss/arm/acinclude.m4 b/libgloss/arm/acinclude.m4
new file mode 100644
index 000000000000..b34a40f9c61d
--- /dev/null
+++ b/libgloss/arm/acinclude.m4
@@ -0,0 +1,20 @@
+if test "x$newlib_may_supply_syscalls" = "xyes"; then
+ ARM_BUILD_CRT0_TRUE='#'
+ ARM_BUILD_CRT0_FALSE=
+else
+ ARM_BUILD_CRT0_TRUE=
+ ARM_BUILD_CRT0_FALSE='#'
+fi
+AC_SUBST(ARM_BUILD_CRT0_TRUE)
+AC_SUBST(ARM_BUILD_CRT0_FALSE)
+
+ARM_OBJTYPE=
+case "${target}" in
+ *-*-elf | *-*-eabi* | *-*-tirtos*)
+ ARM_OBJTYPE=elf-
+ ;;
+ *-*-coff)
+ ARM_OBJTYPE=coff-
+ ;;
+esac
+AC_SUBST(ARM_OBJTYPE)
diff --git a/libgloss/arm/configure.ac b/libgloss/arm/configure.ac
deleted file mode 100644
index 44f5f73962e4..000000000000
--- a/libgloss/arm/configure.ac
+++ /dev/null
@@ -1,72 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-AC_INIT(redboot-crt0.S)
-
-dnl Support --disable-newlib-supplied-syscalls
-AC_ARG_ENABLE(newlib-supplied-syscalls,
-[ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls],
-[case "${enableval}" in
- yes) newlib_may_supply_syscalls=yes ;;
- no) newlib_may_supply_syscalls=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for newlib-supplied-syscalls option) ;;
- esac], [newlib_may_supply_syscalls=yes])dnl
-
-if test "x$newlib_may_supply_syscalls" = "xyes"; then
- BUILD_CRT0_TRUE='#'
- BUILD_CRT0_FALSE=
-else
- BUILD_CRT0_TRUE=
- BUILD_CRT0_FALSE='#'
-fi
-
-AC_SUBST(BUILD_CRT0_TRUE)
-AC_SUBST(BUILD_CRT0_FALSE)
-
-AC_CONFIG_AUX_DIR(../..)
-
-AC_CANONICAL_SYSTEM
-AC_ARG_PROGRAM
-
-AC_PROG_INSTALL
-
-AC_NO_EXECUTABLES
-AC_PROG_CC
-AM_PROG_AS
-AM_PROG_AR
-LD=${LD-ld}
-AC_SUBST(LD)
-AC_PROG_RANLIB
-
-case "${target}" in
- *-*-elf | *-*-eabi* | *-*-tirtos*)
- objtype=elf-
- ;;
- *-*-coff)
- objtype=coff-
- ;;
-esac
-
-AC_SUBST(objtype)
-
-host_makefile_frag=`cd $srcdir/../config;pwd`/default.mh
-
-dnl We have to assign the same value to other variables because autoconf
-dnl doesn't provide a mechanism to substitute a replacement keyword with
-dnl arbitrary data or pathnames.
-dnl
-host_makefile_frag_path=$host_makefile_frag
-AC_SUBST(host_makefile_frag_path)
-AC_SUBST_FILE(host_makefile_frag)
-
-# Configure cpu init plug-ins
-if test -d "${srcdir}/cpu-init"; then
- subdirs="${subdirs} cpu-init"
- AC_CONFIG_FILES([cpu-init/Makefile], [dnl
- ac_file=cpu-init/Makefile . ${srcdir}/../../config-ml.in
- ])
- AC_SUBST(subdirs)
-fi
-
-AM_ENABLE_MULTILIB(, ../..)
-
-AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
diff --git a/libgloss/arm/cpu-init/Makefile.in b/libgloss/arm/cpu-init/Makefile.in
index 547c58daf89f..49ad53818d08 100644
--- a/libgloss/arm/cpu-init/Makefile.in
+++ b/libgloss/arm/cpu-init/Makefile.in
@@ -80,8 +80,5 @@ info:
install-info:
clean-info:
-Makefile: Makefile.in ../config.status @host_makefile_frag_path@
- $(SHELL) ../config.status --file cpu-init/Makefile
-
-../config.status: ../configure
- $(SHELL) ../config.status --recheck
+Makefile: Makefile.in ../../config.status
+ cd ../.. && $(SHELL) ./config.status --file arm/cpu-init/Makefile
diff --git a/libgloss/configure.ac b/libgloss/configure.ac
index 931e3f6de42d..3e3b8afe95e0 100644
--- a/libgloss/configure.ac
+++ b/libgloss/configure.ac
@@ -8,6 +8,15 @@ fi
AC_CONFIG_AUX_DIR(..)
+dnl Support --disable-newlib-supplied-syscalls
+AC_ARG_ENABLE(newlib-supplied-syscalls,
+[ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls],
+[case "${enableval}" in
+ yes) newlib_may_supply_syscalls=yes ;;
+ no) newlib_may_supply_syscalls=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for newlib-supplied-syscalls option) ;;
+ esac], [newlib_may_supply_syscalls=yes])dnl
+
AC_PROG_INSTALL
AC_CANONICAL_SYSTEM
@@ -205,7 +214,8 @@ case "${target}" in
subdirs="$subdirs rx"
;;
arm*-*-elf | arm*-*-coff | arm*-*-*)
- AC_CONFIG_SUBDIRS([arm])
+ AC_CONFIG_FILES([arm/Makefile arm/cpu-init/Makefile])
+ subdirs="$subdirs arm arm/cpu-init"
;;
spu-*-elf)
AC_CONFIG_FILES([spu/Makefile])
@@ -235,6 +245,7 @@ case "${target}" in
subdirs="$subdirs nios2"
;;
esac
+AC_SUBST(subdirs)
dnl These subdirs have converted to non-recursive make. Hopefully someday all
dnl the ports above will too!
@@ -332,6 +343,7 @@ dnl
AC_DEFINE_UNQUOTED(__SYMBOL_PREFIX, "$libc_cv_symbol_prefix", [symbol prefix])
m4_include([aarch64/acinclude.m4])
+m4_include([arm/acinclude.m4])
m4_include([i386/acinclude.m4])
m4_include([libnosys/acinclude.m4])
m4_include([m68k/acinclude.m4])
--
2.38.1
More information about the Newlib
mailing list