libgloss: merge mn10300 into top-level Makefile

Message ID 20231227042224.9247-1-vapier@gentoo.org
State New
Headers
Series libgloss: merge mn10300 into top-level Makefile |

Commit Message

Mike Frysinger Dec. 27, 2023, 4:22 a.m. UTC
  Avoid a recursive make to speed things up a bit.
A mn10300-elf build shows installed objects & libs produce same code.
---
 libgloss/Makefile.am          |   3 +
 libgloss/Makefile.in          | 331 ++++++++++++++++++++++++++--------
 libgloss/config/mn10300.mt    |   3 -
 libgloss/configure            |  52 ++++--
 libgloss/configure.ac         |   7 +-
 libgloss/mn10300/Makefile.in  | 156 ----------------
 libgloss/mn10300/Makefile.inc |  67 +++++++
 libgloss/mn10300/acinclude.m4 |  18 +-
 8 files changed, 370 insertions(+), 267 deletions(-)
 delete mode 100644 libgloss/config/mn10300.mt
 delete mode 100644 libgloss/mn10300/Makefile.in
 create mode 100644 libgloss/mn10300/Makefile.inc
  

Patch

diff --git a/libgloss/Makefile.am b/libgloss/Makefile.am
index c329d4078e10..3732184dcced 100644
--- a/libgloss/Makefile.am
+++ b/libgloss/Makefile.am
@@ -99,6 +99,9 @@  endif
 if CONFIG_LM32
 include lm32/Makefile.inc
 endif
+if CONFIG_MN10300
+include mn10300/Makefile.inc
+endif
 if CONFIG_MOXIE
 include moxie/Makefile.inc
 endif
diff --git a/libgloss/config/mn10300.mt b/libgloss/config/mn10300.mt
deleted file mode 100644
index 6b4c522c1308..000000000000
--- a/libgloss/config/mn10300.mt
+++ /dev/null
@@ -1,3 +0,0 @@ 
-# Dummy target-specific Makefile fragment for MN10300.  We can't
-# use default.mt because it refers to generic source files whose
-# names conflict with the MN10300-specific sources.
diff --git a/libgloss/configure.ac b/libgloss/configure.ac
index f0eb1f21ec75..b5ffeba0b07a 100644
--- a/libgloss/configure.ac
+++ b/libgloss/configure.ac
@@ -118,9 +118,7 @@  case "${target}" in
 	target_makefile_frag=${srcdir}/config/mn10200.mt
 	;;
   mn10300-*-*)
-	AC_CONFIG_FILES([mn10300/Makefile])
-	subdirs="$subdirs mn10300"
-	target_makefile_frag=${srcdir}/config/mn10300.mt
+	config_mn10300=true
 	;;
   bfin-*-*)
 	config_bfin=true
@@ -244,7 +242,8 @@  AC_SUBST(subdirs)
 dnl These subdirs have converted to non-recursive make.  Hopefully someday all
 dnl the ports above will too!
 m4_foreach_w([SUBDIR], [
-  aarch64 arc arm bfin csky d30v frv i386 i960 iq2000 libnosys lm32 moxie msp430
+  aarch64 arc arm bfin csky d30v frv i386 i960 iq2000 libnosys lm32
+  mn10300 moxie msp430
   nios2 riscv v850 wince xtensa
 ], [dnl
   AM_CONDITIONAL([CONFIG_]m4_toupper(SUBDIR), [test x$config_]SUBDIR = xtrue)
diff --git a/libgloss/mn10300/Makefile.in b/libgloss/mn10300/Makefile.in
deleted file mode 100644
index 1669d5ce4fbb..000000000000
--- a/libgloss/mn10300/Makefile.in
+++ /dev/null
@@ -1,156 +0,0 @@ 
-# Copyright (c) 1998, 2000 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.
-
-DESTDIR =
-VPATH = @srcdir@
-srcdir = @srcdir@
-objdir = .
-srcroot = $(srcdir)/../..
-objroot = $(objdir)/../..
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-host_alias = @host_alias@
-target_alias = @target_alias@
-program_transform_name = @program_transform_name@
-
-bindir = @bindir@
-libdir = @libdir@
-tooldir = $(exec_prefix)/$(target_alias)
-
-# Multilib support variables.
-# TOP is used instead of MULTI{BUILD,SRC}TOP.
-MULTIDIRS =
-MULTISUBDIR =
-MULTIDO = true
-MULTICLEAN = true
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-SHELL =	/bin/sh
-
-CC = @CC@
-
-#AS = @AS@
-AS = `if [ -f ${objroot}/../gas/as.new ] ; \
-	then echo ${objroot}/../gas/as.new ; \
-	else echo as ; fi`
-
-AR = @AR@
-
-#LD = @LD@
-LD = `if [ -f ${objroot}/../ld/ld.new ] ; \
-	then echo ${objroot}/../ld/ld.new ; \
-	else echo ld ; fi`
-
-RANLIB = @RANLIB@
-
-OBJDUMP = `if [ -f ${objroot}/../binutils/objdump ] ; \
-	then echo ${objroot}/../binutils/objdump ; \
-	else t='$(program_transform_name)'; echo objdump | sed -e $$t ; fi`
-OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \
-	then echo ${objroot}/../binutils/objcopy ; \
-	else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi`
-
-CRT0 = crt0.o crt0_cygmon.o crt0_redboot.o
-
-# Generic object files common to all targets.
-GENOBJS_NO_TRAP = _exit.o access.o chmod.o close.o crt1.o \
-	fstat.o getpid.o isatty.o \
-	kill.o lseek.o open.o read.o \
-	sbrk.o stat.o time.o times.o unlink.o utime.o write.o
-GENOBJS = ${GENOBJS_NO_TRAP} trap.o
-
-# Object files specific to particular targets.
-EVALOBJS = ${GENOBJS}
-CYGMONOBJS = cygmon.o ${GENOBJS_NO_TRAP}
-
-CFLAGS = -g 
-
-GCC_LDFLAGS = `if [ -d ${objroot}/../gcc ] ; \
-	then echo -L${objroot}/../gcc ; fi`
-
-SCRIPTS = @MN10300_SCRIPT_LIST@
-BSP = @MN10300_BSP_LIST@
-
-# Host specific makefile fragment comes in here.
-@host_makefile_frag@
-
-#
-# build a test program for each target board. Just trying to get
-# it to link is a good test, so we ignore all the errors for now.
-#
-
-all: ${CRT0} test.o ${BSP}
-
-#
-# here's where we build the board support packages for each target
-#
-
-libeval.a: $(EVALOBJS)
-	${AR} ${ARFLAGS} $@ $(EVALOBJS)
-	${RANLIB} $@
-
-libcygmon.a: $(CYGMONOBJS)
-	${AR} ${ARFLAGS} $@ $(CYGMONOBJS)
-	${RANLIB} $@
-
-
-# compile a fully linked binary. The -Wl,-T*.ld is for the linker
-# script. By using -Wl, the linker script is put on the proper place
-# in the comand line for ld, and all the symbols will get fully
-# resolved.
-
-test: ${CRT0} test.o
-	${CC} $(CFLAGS_FOR_TARGET) -L${srcdir} -L${objdir} \
-	test.o -o $@ $(NEWLIB_LDFLAGS) -Wl,-Teval.ld
-	@echo Done...
-
-doc:	
-
-clean mostlyclean:
-	rm -f a.out core *.i *~ *.o *-test *.srec *.dis *.map *.x
-
-distclean maintainer-clean realclean: clean
-	rm -f Makefile a.out
-
-.PHONY: install info install-info clean-info
-install:
-	mkdir -p $(DESTDIR)$(tooldir)/lib${MULTISUBDIR};
-	@for crt in ${CRT0}; do \
-	$(INSTALL_PROGRAM) $${crt} $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$${crt}; \
-	done
-	@for bsp in ${BSP}; do \
-	 $(INSTALL_PROGRAM) $${bsp} $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \
-	done
-	@for script in ${SCRIPTS}; do \
-	 $(INSTALL_DATA) ${srcdir}/$${script}.ld $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$${script}.ld; \
-	done
-
-info:
-install-info:
-clean-info:
-
-test.o:	${srcdir}/test.c
-
-# these are for the BSPs
-crt0.o: ${srcdir}/crt0.S
-crt0_cygmon.o: ${srcdir}/crt0_cygmon.S
-
-# target specific makefile fragment comes in here.
-@target_makefile_frag@
-
-Makefile: Makefile.in ../config.status
-	cd .. && $(SHELL) config.status
diff --git a/libgloss/mn10300/Makefile.inc b/libgloss/mn10300/Makefile.inc
new file mode 100644
index 000000000000..80a14bf94a45
--- /dev/null
+++ b/libgloss/mn10300/Makefile.inc
@@ -0,0 +1,67 @@ 
+## Copyright (c) 1998, 2000 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.
+
+multilibtool_DATA += \
+	%D%/eval.ld \
+	%D%/sim.ld
+if MN10300_BUILD_LIBCYGMON
+multilibtool_DATA += \
+	%D%/asb2303.ld \
+	%D%/asb2305.ld
+endif
+
+multilibtool_DATA += \
+	%D%/crt0.o \
+	%D%/crt0_cygmon.o \
+	%D%/crt0_redboot.o
+libobjs_a_SOURCES += \
+	%D%/crt0.S \
+	%D%/crt0_cygmon.S \
+	%D%/crt0_redboot.S
+
+# Generic object files common to all targets.
+%C%_common_lib_sources = \
+	%D%/_exit.c \
+	%D%/access.c \
+	%D%/chmod.c \
+	%D%/close.c \
+	%D%/crt1.c \
+	%D%/fstat.c \
+	%D%/getpid.c \
+	%D%/isatty.c \
+	%D%/kill.c \
+	%D%/lseek.c \
+	%D%/open.c \
+	%D%/read.c \
+	%D%/sbrk.c \
+	%D%/stat.c \
+	%D%/time.c \
+	%D%/times.c \
+	%D%/unlink.c \
+	%D%/utime.c \
+	%D%/write.c
+
+multilibtool_LIBRARIES += %D%/libeval.a
+%C%_libeval_a_SOURCES = \
+	$(%C%_common_lib_sources) \
+	%D%/trap.S
+
+if MN10300_BUILD_LIBCYGMON
+multilibtool_LIBRARIES += %D%/libcygmon.a
+%C%_libcygmon_a_SOURCES = \
+	$(%C%_common_lib_sources) \
+	%D%/cygmon.c
+endif
+
+check_PROGRAMS += %D%/test
+%C%_test_LDFLAGS = $(AM_LDFLAGS) -Wl,-T$(srcdir)/%D%/eval.ld
+%C%_test_LDADD = $(LDADD) %D%/libeval.a
diff --git a/libgloss/mn10300/acinclude.m4 b/libgloss/mn10300/acinclude.m4
index 93fa5286e8d5..031b55f3f136 100644
--- a/libgloss/mn10300/acinclude.m4
+++ b/libgloss/mn10300/acinclude.m4
@@ -1,14 +1,4 @@ 
-MN10300_SCRIPT_LIST=
-MN10300_BSP_LIST=
-case "${target}" in
-  mn10300-*elf)
-    MN10300_SCRIPT_LIST="eval sim asb2303 asb2305"
-    MN10300_BSP_LIST="libeval.a libcygmon.a"
-    ;;
-  *)
-    MN10300_SCRIPT_LIST="eval sim"
-    MN10300_BSP_LIST="libeval.a"
-    ;;
-esac
-AC_SUBST(MN10300_SCRIPT_LIST)
-AC_SUBST(MN10300_BSP_LIST)
+AS_CASE([${target}],
+  [mn10300-*elf], [MN10300_BUILD_LIBCYGMON=true],
+  [MN10300_BUILD_LIBCYGMON=false])
+AM_CONDITIONAL([MN10300_BUILD_LIBCYGMON], [$MN10300_BUILD_LIBCYGMON])