libgloss: merge mcore into top-level Makefile
Commit Message
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
@@ -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
@@ -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)
deleted file mode 100644
@@ -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
new file mode 100644
@@ -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)
@@ -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])