[PATCH] libgloss: merge mips configure script up a level
Mike Frysinger
vapier@gentoo.org
Sat Feb 12 10:20:16 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