[PATCH] libgloss: merge mips configure script up a level

Mike Frysinger vapier@gentoo.org
Thu Feb 17 05:45:34 GMT 2022


Move the minor mips-specific logic to a dedicated file & namespace
them so we can merge its configure logic up a level.
---
 libgloss/Makefile.in       |   10 +-
 libgloss/aclocal.m4        |   59 +-
 libgloss/configure         |  136 +-
 libgloss/configure.ac      |    5 +-
 libgloss/mips/Makefile.in  |   33 +-
 libgloss/mips/acinclude.m4 |   47 +
 libgloss/mips/aclocal.m4   |  384 ----
 libgloss/mips/configure    | 3990 ------------------------------------
 libgloss/mips/configure.ac |  103 -
 9 files changed, 149 insertions(+), 4618 deletions(-)
 create mode 100644 libgloss/mips/acinclude.m4
 delete mode 100644 libgloss/mips/aclocal.m4
 delete mode 100755 libgloss/mips/configure
 delete mode 100644 libgloss/mips/configure.ac

diff --git a/libgloss/configure.ac b/libgloss/configure.ac
index f9d037066bc3..eb3110e0427d 100644
--- a/libgloss/configure.ac
+++ b/libgloss/configure.ac
@@ -99,7 +99,9 @@ case "${target}" in
 	config_wince=true
 	;;
   mips*-*-*)
-	AC_CONFIG_SUBDIRS([mips])
+	AC_CONFIG_FILES([mips/Makefile])
+	subdirs="$subdirs mips"
+	target_makefile_frag=${srcdir}/config/mips.mt
 	;;
   riscv*-*-*)
 	AC_CONFIG_FILES([riscv/Makefile])
@@ -343,6 +345,7 @@ m4_include([i386/acinclude.m4])
 m4_include([libnosys/acinclude.m4])
 m4_include([m68k/acinclude.m4])
 m4_include([mcore/acinclude.m4])
+m4_include([mips/acinclude.m4])
 m4_include([mn10300/acinclude.m4])
 m4_include([moxie/acinclude.m4])
 
diff --git a/libgloss/mips/Makefile.in b/libgloss/mips/Makefile.in
index d96478d933ac..4213a1d1f513 100644
--- a/libgloss/mips/Makefile.in
+++ b/libgloss/mips/Makefile.in
@@ -64,31 +64,31 @@ OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \
 	then echo ${objroot}/../binutils/objcopy ; \
 	else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi`
 
-CRT0 = @crt0@
-PCRT0 = @pcrt0@
+CRT0 = @MIPS_CRT0@
+PCRT0 = pcrt0.o
 GENOBJS = syscalls.o fstat.o getpid.o isatty.o kill.o \
 	lseek.o print.o putnum.o stat.o unlink.o
 GENOBJS2 = open.o close.o read.o write.o
-IDTOBJS = idtmon.o @part_specific_obj@ ${GENOBJS}
-PMONOBJS = pmon.o @part_specific_obj@ ${GENOBJS}
-LSIOBJS = lsipmon.o @part_specific_obj@ ${GENOBJS}
-DVEOBJS = dvemon.o @part_specific_obj@ ${GENOBJS} ${GENOBJS2}
-JMR3904OBJS = jmr3904-io.o @part_specific_obj@ ${GENOBJS} ${GENOBJS2}
-CFEOBJS = cfe.o cfe_api.o cfe_mem.o @part_specific_obj@ ${GENOBJS} ${GENOBJS2}
-CYGMONOBJS = open.o close.o cygmon.o @part_specific_obj@ ${GENOBJS}
+IDTOBJS = idtmon.o @MIPS_PART_SPECIFIC_OBJ@ ${GENOBJS}
+PMONOBJS = pmon.o @MIPS_PART_SPECIFIC_OBJ@ ${GENOBJS}
+LSIOBJS = lsipmon.o @MIPS_PART_SPECIFIC_OBJ@ ${GENOBJS}
+DVEOBJS = dvemon.o @MIPS_PART_SPECIFIC_OBJ@ ${GENOBJS} ${GENOBJS2}
+JMR3904OBJS = jmr3904-io.o @MIPS_PART_SPECIFIC_OBJ@ ${GENOBJS} ${GENOBJS2}
+CFEOBJS = cfe.o cfe_api.o cfe_mem.o @MIPS_PART_SPECIFIC_OBJ@ ${GENOBJS} ${GENOBJS2}
+CYGMONOBJS = open.o close.o cygmon.o @MIPS_PART_SPECIFIC_OBJ@ ${GENOBJS}
 
 # Nullmon cannot support read and write, but the test cases pull them in via libs
-NULLMONOBJS = nullmon.o @part_specific_obj@ ${GENOBJS}
+NULLMONOBJS = nullmon.o @MIPS_PART_SPECIFIC_OBJ@ ${GENOBJS}
 
 CFLAGS = -g 
 
 GCC_LDFLAGS = `if [ -d ${objroot}/../gcc ] ; \
 	then echo -L${objroot}/../gcc ; fi`
 
-SCRIPTS = @script_list@
-BSP = @bsp_list@
+SCRIPTS = @MIPS_SCRIPT_LIST@
+BSP = @MIPS_BSP_LIST@
 
-PART_SPECIFIC_DEFINES = @part_specific_defines@
+PART_SPECIFIC_DEFINES = @MIPS_PART_SPECIFIC_DEFINES@
 
 # Host specific makefile fragment comes in here.
 @host_makefile_frag@
@@ -253,8 +253,5 @@ syscalls.o: ${srcdir}/syscalls.c
 # target specific makefile fragment comes in here.
 @target_makefile_frag@
 
-Makefile: Makefile.in config.status @host_makefile_frag_path@ @target_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/mips/acinclude.m4 b/libgloss/mips/acinclude.m4
new file mode 100644
index 000000000000..6061d8dd1a35
--- /dev/null
+++ b/libgloss/mips/acinclude.m4
@@ -0,0 +1,47 @@
+MIPS_PART_SPECIFIC_OBJ=
+MIPS_PART_SPECIFIC_DEFINES=
+MIPS_SCRIPT_LIST=
+MIPS_BSP_LIST=
+MIPS_CRT0=crt0.o
+
+case "${target}" in
+  mips*-tx39*-*|mipstx39*-*-*)
+    MIPS_SCRIPT_LIST="dve idt jmr3904app jmr3904dram jmr3904dram-java jmr3904app-java sde32 sde64 mti32 mti64 mti64_n32 mti64_64"
+    MIPS_BSP_LIST="libdve.a libidt.a libjmr3904.a"
+    ;;
+  mipsisa32-*-* | mipsisa32el-*-* | \
+  mipsisa32r2-*-* | mipsisa32r2el-*-* | \
+  mipsisa64*-*-*)
+    MIPS_CRT0="crt0_cfe.o crt0_cygmon.o crt0.o"
+    MIPS_SCRIPT_LIST="idt32 idt64 cfe"
+    MIPS_BSP_LIST="libcygmon.a libidt.a libcfe.a"
+    ;;
+  mips*-lsi*-*)
+    MIPS_PART_SPECIFIC_OBJ="entry.o"
+    MIPS_SCRIPT_LIST="lsi"
+    MIPS_BSP_LIST=liblsi.a
+    ;;
+  mips64vr5*-*-*)
+    MIPS_PART_SPECIFIC_OBJ="vr5xxx.o cma101.o"
+    MIPS_PART_SPECIFIC_DEFINES=-DR5000
+    MIPS_SCRIPT_LIST="idt pmon ddb ddb-kseg0 lsi idtecoff nullmon"
+    MIPS_BSP_LIST="libidt.a libpmon.a liblsi.a libnullmon.a"
+    ;;
+  mips64vr-*-* | mips64vrel-*-*)
+    MIPS_PART_SPECIFIC_OBJ="vr5xxx.o cma101.o"
+    MIPS_SCRIPT_LIST="ddb ddb-kseg0 nullmon"
+    MIPS_BSP_LIST="libpmon.a libnullmon.a"
+    ;;
+  mips*)
+    MIPS_CRT0="crt0_cfe.o crt0.o"
+    MIPS_PART_SPECIFIC_OBJ="vr4300.o cma101.o"
+    MIPS_SCRIPT_LIST="idt pmon ddb ddb-kseg0 lsi cfe idtecoff nullmon sde32 sde64 mti32 mti64 mti64_n32 mti64_64"
+    MIPS_BSP_LIST="libidt.a libpmon.a liblsi.a libcfe.a libnullmon.a"
+    ;;
+esac
+
+AC_SUBST(MIPS_PART_SPECIFIC_OBJ)
+AC_SUBST(MIPS_PART_SPECIFIC_DEFINES)
+AC_SUBST(MIPS_SCRIPT_LIST)
+AC_SUBST(MIPS_BSP_LIST)
+AC_SUBST(MIPS_CRT0)
diff --git a/libgloss/mips/configure.ac b/libgloss/mips/configure.ac
deleted file mode 100644
index ca99c7287635..000000000000
--- a/libgloss/mips/configure.ac
+++ /dev/null
@@ -1,103 +0,0 @@
-# Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2002 Cygnus Support
-#
-# The authors hereby grant permission to use, copy, modify, distribute,
-# and license this software and its documentation for any purpose, provided
-# that existing copyright notices are retained in all copies and that this
-# notice is included verbatim in any distributions. No written agreement,
-# license, or royalty fee is required for any of the authorized uses.
-# Modifications to this software may be copyrighted by their authors
-# and need not follow the licensing terms described here, provided that
-# the new terms are clearly indicated on the first page of each file where
-# they apply.
-#
-# Process this file with autoconf to produce a configure script.
-#
-AC_INIT(crt0.S)
-
-AC_CONFIG_AUX_DIR(../..)
-
-AC_CANONICAL_SYSTEM
-AC_ARG_PROGRAM
-
-AC_PROG_INSTALL
-
-LIB_AC_PROG_CC
-AS=${AS-as}
-AC_SUBST(AS)
-AR=${AR-ar}
-AC_SUBST(AR)
-LD=${LD-ld}
-AC_SUBST(LD)
-AC_PROG_RANLIB
-LIB_AM_PROG_AS
-
-crt0=crt0.o
-pcrt0=pcrt0.o
-
-case "${target}" in
-  mips*-tx39*-*|mipstx39*-*-*)
-        part_specific_obj=
-	part_specific_defines=
-        script_list="dve idt jmr3904app jmr3904dram jmr3904dram-java jmr3904app-java sde32 sde64 mti32 mti64 mti64_n32 mti64_64"
-        bsp_list="libdve.a libidt.a libjmr3904.a"
-        ;;
-  mipsisa32-*-* | mipsisa32el-*-* | \
-  mipsisa32r2-*-* | mipsisa32r2el-*-* | \
-  mipsisa64*-*-*)
-	crt0="crt0_cfe.o crt0_cygmon.o crt0.o"
-	pcrt0="pcrt0.o"
-	part_specific_obj=
-	part_specific_defines=
-	script_list="idt32 idt64 cfe"
-	bsp_list="libcygmon.a libidt.a libcfe.a"
-	;;
-  mips*-lsi*-*)
-	part_specific_obj=entry.o
-	part_specific_defines=
-        script_list="lsi"
-        bsp_list=liblsi.a
-	;;
-  mips64vr5*-*-*)
-	part_specific_obj="vr5xxx.o cma101.o"
-	part_specific_defines=-DR5000
-        script_list="idt pmon ddb ddb-kseg0 lsi idtecoff nullmon"
-        bsp_list="libidt.a libpmon.a liblsi.a libnullmon.a"
-	;;
-  mips64vr-*-* | mips64vrel-*-*)
-	part_specific_obj="vr5xxx.o cma101.o"
-	script_list="ddb ddb-kseg0 nullmon"
-	bsp_list="libpmon.a libnullmon.a"
-	;;
-  *)
-	crt0="crt0_cfe.o crt0.o"
-        part_specific_obj="vr4300.o cma101.o"
-	part_specific_defines=
-        script_list="idt pmon ddb ddb-kseg0 lsi cfe idtecoff nullmon sde32 sde64 mti32 mti64 mti64_n32 mti64_64"
-        bsp_list="libidt.a libpmon.a liblsi.a libcfe.a libnullmon.a"
-        ;;
-esac
-
-host_makefile_frag=${srcdir}/../config/default.mh
-target_makefile_frag=${srcdir}/../config/mips.mt
-
-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)
-target_makefile_frag_path=$target_makefile_frag
-AC_SUBST(target_makefile_frag_path)
-AC_SUBST_FILE(target_makefile_frag)
-AC_SUBST(part_specific_obj)
-AC_SUBST(part_specific_defines)
-AC_SUBST(script_list)
-AC_SUBST(bsp_list)
-AC_SUBST(crt0)
-AC_SUBST(pcrt0)
-
-AM_ENABLE_MULTILIB(, ../..)
-
-AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
-- 
2.34.1



More information about the Newlib mailing list