[PATCH] libgloss: merge mcore into top-level Makefile

Mike Frysinger <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
Avoid a recursive make to speed things up a bit.
A mcore-elf build shows installed objects & libs produce same code.
---
 libgloss/Makefile.am        |   3 +
 libgloss/Makefile.in        | 316 ++++++++++++++++++++++++++----------
 libgloss/configure          |  64 ++++++--
 libgloss/configure.ac       |   5 +-
 libgloss/mcore/Makefile.in  | 144 ----------------
 libgloss/mcore/Makefile.inc |  52 ++++++
 libgloss/mcore/acinclude.m4 |  17 +-
 7 files changed, 345 insertions(+), 256 deletions(-)
 delete mode 100644 libgloss/mcore/Makefile.in
 create mode 100644 libgloss/mcore/Makefile.inc

diff --git a/libgloss/Makefile.am b/libgloss/Makefile.am
index 2bbbc8fe0a3d..10a8706392ff 100644
--- a/libgloss/Makefile.am
+++ b/libgloss/Makefile.am
@@ -99,6 +99,9 @@ endif
 if CONFIG_LM32
 include lm32/Makefile.inc
 endif
+if CONFIG_MCORE
+include mcore/Makefile.inc
+endif
 if CONFIG_MN10200
 include mn10200/Makefile.inc
 endif
diff --git a/libgloss/configure.ac b/libgloss/configure.ac
index 4564e16ceecd..47b614968465 100644
--- a/libgloss/configure.ac
+++ b/libgloss/configure.ac
@@ -151,8 +151,7 @@ case "${target}" in
 	config_lm32=true
 	;;
   mcore-*-*)
-	AC_CONFIG_FILES([mcore/Makefile])
-	subdirs="$subdirs mcore"
+	config_mcore=true
 	;;
   mep-*-*)
 	AC_CONFIG_FILES([mep/Makefile])
@@ -241,7 +240,7 @@ 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
-  mn10200 mn10300 moxie msp430
+  mcore mn10200 mn10300 moxie msp430
   nios2 riscv v850 wince xtensa
 ], [dnl
   AM_CONDITIONAL([CONFIG_]m4_toupper(SUBDIR), [test x$config_]SUBDIR = xtrue)
diff --git a/libgloss/mcore/Makefile.in b/libgloss/mcore/Makefile.in
deleted file mode 100644
index 883e5ed59fd8..000000000000
--- a/libgloss/mcore/Makefile.in
+++ /dev/null
@@ -1,144 +0,0 @@
-#
-#
-
-DESTDIR =
-VPATH = @srcdir@ @srcdir@/..
-srcdir = @srcdir@
-objdir = .
-srcroot = $(srcdir)/../..
-objroot = $(objdir)/../..
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-host_alias = @host_alias@
-target_alias = @target_alias@
-
-bindir = @bindir@
-libdir = @libdir@
-tooldir = $(exec_prefix)/$(target_alias)
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-# Multilib support variables.
-# TOP is used instead of MULTI{BUILD,SRC}TOP.
-MULTIDIRS =
-MULTISUBDIR =
-
-SHELL =	/bin/sh
-
-mkinstalldirs = $(SHELL) $(srcroot)/mkinstalldirs
-
-CC = @CC@
-
-AS = @AS@
-AR = @AR@
-LD = @LD@
-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`
-
-OBJS		= fstat.o getpid.o isatty.o kill.o raise.o putnum.o stat.o unlink.o
-CFLAGS		= -g
-SCRIPTS		= 
-
-# Here is all of the simulator stuff
-SIM_SCRIPTS	=
-SIM_LDFLAGS	=
-SIM_BSP		= libsim.a
-SIM_CRT0	= crt0.o
-SIM_OBJS	= syscalls.o
-SIM_TEST	= sim-test
-SIM_INSTALL	= install-sim
-
-# Here is all of the picobug on cmb stuff
-MON_PREFIX	= @MCORE_BSP_PREFIX@
-MON_LDFLAGS	=
-MON_BSP		= libcmb.a
-MON_CRT0	= crt0.o
-MON_OBJS	= open.o close.o lseek.o sbrk.o read.o write.o print.o cmb-exit.o cmb-inbyte.o cmb-outbyte.o
-MON_SCRIPTS	= cmb.ld cmb.specs
-MON_TEST	=
-MON_INSTALL	= install-mon
-
-# 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: ${SIM_CRT0} ${SIM_BSP} ${MON_BSP}
-
-#
-# here's where we build the board support packages for each target
-#
-${SIM_BSP}: ${OBJS} ${SIM_OBJS}
-	${AR} ${ARFLAGS} ${SIM_BSP} ${SIM_OBJS} ${OBJS}
-	${RANLIB} ${SIM_BSP}
-
-${MON_BSP}: ${OBJS} ${MON_OBJS}
-	${AR} ${ARFLAGS} ${MON_BSP} ${MON_OBJS} ${OBJS}
-	${RANLIB} ${MON_BSP}
-
-#
-# here's where we build the test programs for each target
-#
-.PHONY: test
-test:	${SIM_TEST} ${MON_TEST}
-
-sim-test:	sim-test.x sim-test.dis
-
-sim-test.x:	test.o ${SIM_CRT0} ${SIM_BSP}
-	${CC} ${LDFLAGS_FOR_TARGET} -L${objdir} \
-	${SIM_CRT0} test.o \
-	-o sim-test.x ${LIBS_FOR_TARGET} -lc ${SIM_BSP}
-
-sim-test.dis:	sim-test.x
-	${OBJDUMP} -d sim-test.x > sim-test.dis
-
-
-#
-#
-#
-.c.S:
-	${CC} ${CFLAGS_FOR_TARGET} $(INCLUDES) $(CFLAGS) -c $<
-
-simulator.o: simulator.S
-sim-crt0.o: sim-crt0.S
-cmb-exit.o: cmb-exit.c
-cmb-inbyte.o: cmb-inbyte.c
-cmb-outbyte.o: cmb-outbyte.c
-
-clean mostlyclean:
-	rm -f a.out core *.i *.o *-test *.srec *.dis *.x $(SIM_BSP) $(MON_BSP)
-
-distclean maintainer-clean realclean: clean
-	rm -f Makefile *~
-
-.PHONY: install info install-info clean-info
-install: ${SIM_INSTALL} ${MON_INSTALL}
-
-install-mon:
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	set -e; for x in ${MON_CRT0} ${MON_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
-	set -e; for x in ${MON_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${MON_PREFIX}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
-
-install-sim:
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	set -e; for x in ${SIM_CRT0} ${SIM_BSP} ${SIM_SCRIPTS}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
-
-doc:
-info:
-install-info:
-clean-info:
-
-Makefile: Makefile.in ../config.status
-	cd .. && $(SHELL) config.status
diff --git a/libgloss/mcore/Makefile.inc b/libgloss/mcore/Makefile.inc
new file mode 100644
index 000000000000..f0dec199029e
--- /dev/null
+++ b/libgloss/mcore/Makefile.inc
@@ -0,0 +1,52 @@
+if MCORE_BUILD_ELF
+multilibtool_DATA += \
+	%D%/cmb.ld \
+	%D%/cmb.specs
+%D%/cmb.ld: %D%/elf-cmb.ld
+	$(AM_V_GEN)cp $< $@
+%D%/cmb.specs: %D%/elf-cmb.specs
+	$(AM_V_GEN)cp $< $@
+endif
+if MCORE_BUILD_PE
+multilibtool_DATA += \
+	%D%/cmb.ld \
+	%D%/cmb.specs
+%D%/cmb.ld: %D%/pe-cmb.ld
+	$(AM_V_GEN)cp $< $@
+%D%/cmb.specs: %D%/pe-cmb.specs
+	$(AM_V_GEN)cp $< $@
+endif
+
+multilibtool_DATA += %D%/crt0.o
+libobjs_a_SOURCES += %D%/crt0.S
+
+%C%_common_lib_sources = \
+	%D%/fstat.c \
+	%D%/getpid.c \
+	isatty.c \
+	%D%/kill.c \
+	%D%/raise.c \
+	%D%/putnum.c \
+	%D%/stat.c \
+	%D%/unlink.c
+
+## Here is all of the simulator stuff
+multilibtool_LIBRARIES += %D%/libsim.a
+%C%_libsim_a_SOURCES = \
+	%D%/syscalls.S \
+	$(%C%_common_lib_sources)
+
+## Here is all of the picobug on cmb stuff
+multilibtool_LIBRARIES += %D%/libcmb.a
+%C%_libcmb_a_SOURCES = \
+	%D%/open.c \
+	%D%/close.c \
+	%D%/lseek.c \
+	%D%/sbrk.c \
+	%D%/read.c \
+	%D%/write.c \
+	%D%/print.c \
+	%D%/cmb-exit.c \
+	%D%/cmb-inbyte.c \
+	%D%/cmb-outbyte.c \
+	$(%C%_common_lib_sources)
diff --git a/libgloss/mcore/acinclude.m4 b/libgloss/mcore/acinclude.m4
index 7115869f3113..ed3fa2e4128f 100644
--- a/libgloss/mcore/acinclude.m4
+++ b/libgloss/mcore/acinclude.m4
@@ -1,10 +1,7 @@
-MCORE_BSP_PREFIX=
-case "${target}" in
-  mcore-*-elf)
-	MCORE_BSP_PREFIX=elf-
-	;;
-  mcore-*-pe)
-	MCORE_BSP_PREFIX=pe-
-	;;
-esac
-AC_SUBST(MCORE_BSP_PREFIX)
+MCORE_BUILD_ELF=false
+MCORE_BUILD_PE=false
+AS_CASE([${target}],
+  [mcore-*-elf], [MCORE_BUILD_ELF=true],
+  [mcore-*-pe], [MCORE_BUILD_PE=true])
+AM_CONDITIONAL([MCORE_BUILD_ELF], [$MCORE_BUILD_ELF])
+AM_CONDITIONAL([MCORE_BUILD_PE], [$MCORE_BUILD_PE])
-- 
2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.