[PATCH 2/4] libgloss: merge arm 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.
---
 libgloss/Makefile.am               |   3 +
 libgloss/Makefile.in               | 556 +++++++++++++++++++++++++----
 libgloss/arm/Makefile.in           | 241 -------------
 libgloss/arm/Makefile.inc          |  89 +++++
 libgloss/arm/acinclude.m4          |  10 -
 libgloss/arm/cpu-init/Makefile.in  |  84 -----
 libgloss/arm/cpu-init/Makefile.inc |  15 +
 libgloss/configure                 |  47 ++-
 libgloss/configure.ac              |   7 +-
 9 files changed, 627 insertions(+), 425 deletions(-)
 delete mode 100644 libgloss/arm/Makefile.in
 create mode 100644 libgloss/arm/Makefile.inc
 delete mode 100644 libgloss/arm/cpu-init/Makefile.in
 create mode 100644 libgloss/arm/cpu-init/Makefile.inc

diff --git a/libgloss/Makefile.am b/libgloss/Makefile.am
index 5b5f0fd541ae..9fed4655a422 100644
--- a/libgloss/Makefile.am
+++ b/libgloss/Makefile.am
@@ -63,6 +63,9 @@ endif
 if CONFIG_AARCH64
 include aarch64/Makefile.inc
 endif
+if CONFIG_ARM
+include arm/Makefile.inc
+endif
 if CONFIG_BFIN
 include bfin/Makefile.inc
 endif
diff --git a/libgloss/arm/Makefile.in b/libgloss/arm/Makefile.in
deleted file mode 100644
index d0d5ea89d62e..000000000000
--- a/libgloss/arm/Makefile.in
+++ /dev/null
@@ -1,241 +0,0 @@
-#
-#
-DESTDIR =
-VPATH = @srcdir@ @srcdir@/..
-srcdir = @srcdir@
-abs_srcdir = @abs_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)
-
-objtype = @ARM_OBJTYPE@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-# Multilib support variables.
-# TOP is used instead of MULTI{BUILD,SRC}TOP.
-MULTISRCTOP =
-MULTIBUILDTOP =
-MULTIDIRS =
-MULTISUBDIR =
-MULTIDO = true
-MULTICLEAN = true
-
-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`
-
-@ARM_BUILD_CRT0_TRUE@CRT0		= crt0.o
-@ARM_BUILD_CRT0_TRUE@CRT0_INSTALL	= install-crt0
-@ARM_BUILD_CRT0_FALSE@CRT0		=
-@ARM_BUILD_CRT0_FALSE@CRT0_INSTALL	=
-
-NANO_SCRIPTS=nano.specs
-NANO_INSTALL=install-nano
-
-LINUX_CRT0    = linux-crt0.o
-LINUX_BSP     = libgloss-linux.a
-LINUX_OBJS    = linux-syscalls0.o linux-syscalls1.o
-LINUX_SCRIPTS = linux.specs
-LINUX_INSTALL = install-linux
-
-REDBOOT_CRT0	= redboot-crt0.o 
-REDBOOT_OBJS	= redboot-syscalls.o
-REDBOOT_SCRIPTS	= redboot.ld redboot.specs
-REDBOOT_INSTALL	= install-redboot
-
-RDPMON_CRT0	= rdpmon-crt0.o
-RDPMON_BSP	= librdpmon.a
-RDPMON_OBJS	= ftruncate.o libcfunc.o syscalls.o trap.o truncate.o _exit.o _kill.o
-RDPMON_SCRIPTS	= rdpmon.specs
-RDPMON_INSTALL	= install-rdpmon
-
-RDIMON_CRT0	= rdimon-crt0.o rdimon-crt0-v2m.o
-RDIMON_BSP	= librdimon.a librdimon-v2m.a
-RDIMON_OBJS	= $(patsubst %,rdimon-%,$(RDPMON_OBJS))
-_RDIMON_SCRIPTS	= rdimon.specs \
-		  aprofile-validation.specs \
-		  aprofile-ve.specs
-RDIMON_SCRIPTS	= $(_RDIMON_SCRIPTS) $(patsubst %.specs,%-v2m.specs,$(_RDIMON_SCRIPTS))
-RDIMON_INSTALL	= install-rdimon
-RDIMON_SEMIHV2M_OBJS = $(patsubst %.o,rdimon-%-v2m.o,$(RDPMON_OBJS))
-
-# Here is all of the eval board stuff
-PID_SCRIPTS	= pid.specs
-PID_INSTALL	= install-pid
-
-IQ80310_SCRIPTS	= iq80310.specs
-IQ80310_INSTALL	= install-iq80310
-
-
-# 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} ${LINUX_CRT0} ${LINUX_BSP} ${REDBOOT_CRT0} ${REDBOOT_OBJS} ${RDPMON_CRT0} ${RDPMON_BSP} ${RDIMON_CRT0} ${RDIMON_BSP}
-
-#
-# here's where we build the test programs for each target
-#
-.PHONY: test
-test:
-
-#
-crt0.o: crt0.S
-redboot-crt0.o: redboot-crt0.S
-redboot-syscalls.o: redboot-syscalls.c $(srcdir)/../syscall.h
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -o $@ -c $<
-
-rdpmon-crt0.o: crt0.S
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDP_MONITOR -o $@ -c $<
-
-rdimon-crt0.o: crt0.S
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-ftruncate.o: ftruncate.c
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-trap.o: trap.S
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-truncate.o: truncate.c
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-_exit.o: _exit.c
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-_kill.o: _kill.c
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-syscalls.o: syscalls.c
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-libcfunc.o: libcfunc.c
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-crt0-v2m.o: crt0.S
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DSEMIHOST_V2_MIXED_MODE -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-ftruncate-v2m.o: ftruncate.c
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DSEMIHOST_V2_MIXED_MODE -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-trap-v2m.o: trap.S
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DSEMIHOST_V2_MIXED_MODE -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-truncate-v2m.o: truncate.c
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DSEMIHOST_V2_MIXED_MODE -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-_exit-v2m.o: _exit.c
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DSEMIHOST_V2_MIXED_MODE -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-_kill-v2m.o: _kill.c
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DSEMIHOST_V2_MIXED_MODE -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-syscalls-v2m.o: syscalls.c
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DSEMIHOST_V2_MIXED_MODE -DARM_RDI_MONITOR -o $@ -c $<
-
-rdimon-libcfunc-v2m.o: libcfunc.c
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DSEMIHOST_V2_MIXED_MODE -DARM_RDI_MONITOR -o $@ -c $<
-
-$(LINUX_BSP): $(LINUX_OBJS)
-	${AR} ${ARFLAGS} $@ $^
-	${RANLIB} $@
-
-$(RDPMON_BSP): $(RDPMON_OBJS)
-	${AR} ${ARFLAGS} $@ $^
-	${RANLIB} $@
-
-librdimon.a: $(RDIMON_OBJS)
-	${AR} ${ARFLAGS} $@ $^
-	${RANLIB} $@
-
-librdimon-v2m.a: $(RDIMON_SEMIHV2M_OBJS)
-	${AR} ${ARFLAGS} $@ $^
-	${RANLIB} $@
-
-# Multilib support.
-.PHONY:  libgloss-multi-do all-multi clean-multi install-multi
-
-clean mostlyclean:
-	rm -f a.out core *.i *.o *-test *.srec *.dis *.x $(SIM_BSP) $(IQ80310_BSP)
-
-distclean maintainer-clean realclean: clean
-	rm -f Makefile *~
-
-.PHONY: install info install-info clean-info
-install: ${CRT0_INSTALL} ${LINUX_INSTALL} ${REDBOOT_INSTALL} ${RDPMON_INSTALL} ${RDIMON_INSTALL} ${IQ80310_INSTALL}  ${PID_INSTALL} ${NANO_INSTALL}
-
-install-nano:
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	set -e; for x in ${NANO_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
-
-install-crt0:
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	${INSTALL_DATA} ${CRT0} $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x
-
-install-linux:
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	set -e; for x in ${LINUX_CRT0} ${LINUX_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
-	set -e; for x in ${LINUX_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
-
-install-redboot:
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	set -e; for x in ${REDBOOT_CRT0} ${REDBOOT_OBJS}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
-	set -e; for x in ${REDBOOT_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
-
-install-rdpmon:
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	set -e; for x in ${RDPMON_CRT0} ${RDPMON_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
-	set -e; for x in ${RDPMON_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
-
-install-rdimon:
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	set -e; for x in ${RDIMON_CRT0} ${RDIMON_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
-	set -e; for x in ${RDIMON_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
-
-
-install-pid:
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	set -e; for x in ${PID_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
-
-install-iq80310:
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	set -e; for x in ${IQ80310_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$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/arm/Makefile.inc b/libgloss/arm/Makefile.inc
new file mode 100644
index 000000000000..41fce3c999c3
--- /dev/null
+++ b/libgloss/arm/Makefile.inc
@@ -0,0 +1,89 @@
+if !MAY_SUPPLY_SYSCALLS
+multilibtool_DATA += %D%/crt0.o
+endif
+
+%C%_SPECS =
+
+## nano files.
+%C%_SPECS += %D%/nano.specs
+
+## Linux files.
+%C%_SPECS += %D%/linux.specs
+multilibtool_DATA += %D%/linux-crt0.o
+multilibtool_LIBRARIES += %D%/libgloss-linux.a
+%C%_libgloss_linux_a_SOURCES = \
+	%D%/linux-syscalls0.c \
+	%D%/linux-syscalls1.c
+
+## RedBoot files.
+%C%_SPECS += %D%/redboot.ld %D%/redboot.specs
+multilibtool_DATA += \
+	%D%/redboot-crt0.o \
+	%D%/redboot-syscalls.o
+
+%D%/redboot-syscalls.o: %D%/redboot-syscalls.c
+	$(AM_V_CC)$(COMPILE) -DSEMIHOST_V2 -o $@ -c $<
+
+## rdpmon files.
+%C%_SPECS += %D%/rdpmon.specs
+multilibtool_DATA += %D%/rdpmon-crt0.o
+multilibtool_LIBRARIES += %D%/librdpmon.a
+%C%_librdpmon_a_SOURCES = \
+	%D%/_exit.c \
+	%D%/_kill.c \
+	%D%/ftruncate.c \
+	%D%/libcfunc.c \
+	%D%/syscalls.c \
+	%D%/trap.S \
+	%D%/truncate.c
+
+%D%/rdpmon-crt0.o: %D%/crt0.S
+	$(AM_V_CPPAS)$(CPPASCOMPILE) -DSEMIHOST_V2 -DARM_RDP_MONITOR -o $@ -c $<
+
+## rdimon files.
+%C%_SPECS += \
+	%D%/rdimon.specs \
+	%D%/rdimon-v2m.specs \
+	%D%/aprofile-validation.specs \
+	%D%/aprofile-validation-v2m.specs \
+	%D%/aprofile-ve-v2m.specs \
+	%D%/aprofile-ve.specs
+multilibtool_DATA += \
+	%D%/rdimon-crt0.o \
+	%D%/rdimon-crt0-v2m.o
+multilibtool_LIBRARIES += \
+	%D%/librdimon.a \
+	%D%/librdimon-v2m.a
+
+%C%_RDIMON_CPPFLAGS = -DSEMIHOST_V2 -DARM_RDI_MONITOR
+%C%_RDIMON_V2M_CPPFLAGS = $(%C%_RDIMON_CPPFLAGS) -DSEMIHOST_V2_MIXED_MODE
+
+%D%/rdimon-crt0.o: %D%/crt0.S
+	$(AM_V_CPPAS)$(CPPASCOMPILE) $(%C%_RDIMON_CPPFLAGS) -o $@ -c $<
+
+%D%/rdimon-crt0-v2m.o: %D%/crt0.S
+	$(AM_V_CPPAS)$(CPPASCOMPILE) $(%C%_RDIMON_V2M_CPPFLAGS) -o $@ -c $<
+
+%C%_librdimon_a_SOURCES = $(%C%_librdpmon_a_SOURCES)
+%C%_librdimon_a_CPPFLAGS = $(AM_CPPFLAGS) $(%C%_RDIMON_CPPFLAGS)
+%C%_librdimon_v2m_a_SOURCES = $(%C%_librdpmon_a_SOURCES)
+%C%_librdimon_v2m_a_CPPFLAGS = $(AM_CPPFLAGS) $(%C%_RDIMON_V2M_CPPFLAGS)
+
+## Here is all of the eval board stuff.
+%C%_SPECS += \
+	%D%/pid.specs \
+	%D%/iq80310.specs
+
+multilibtool_DATA += \
+	$(%C%_SPECS)
+
+## Make copies of the scripts to facilitate in-tree bootstrapping.
+%D%/%.specs: %D%/$(ARM_OBJTYPE)%.specs
+	$(AM_V_GEN)cp $< $@
+
+%D%/%.ld: %D%/$(ARM_OBJTYPE)%.ld
+	$(AM_V_GEN)cp $< $@
+
+CLEANFILES += $(%C%_SPECS)
+
+include %D%/cpu-init/Makefile.inc
diff --git a/libgloss/arm/acinclude.m4 b/libgloss/arm/acinclude.m4
index b34a40f9c61d..d61474d3ade2 100644
--- a/libgloss/arm/acinclude.m4
+++ b/libgloss/arm/acinclude.m4
@@ -1,13 +1,3 @@
-if test "x$newlib_may_supply_syscalls" = "xyes"; then
-  ARM_BUILD_CRT0_TRUE='#'
-  ARM_BUILD_CRT0_FALSE=
-else
-  ARM_BUILD_CRT0_TRUE=
-  ARM_BUILD_CRT0_FALSE='#'
-fi
-AC_SUBST(ARM_BUILD_CRT0_TRUE)
-AC_SUBST(ARM_BUILD_CRT0_FALSE)
-
 ARM_OBJTYPE=
 case "${target}" in
   *-*-elf | *-*-eabi* | *-*-tirtos*)
diff --git a/libgloss/arm/cpu-init/Makefile.in b/libgloss/arm/cpu-init/Makefile.in
deleted file mode 100644
index 49ad53818d08..000000000000
--- a/libgloss/arm/cpu-init/Makefile.in
+++ /dev/null
@@ -1,84 +0,0 @@
-#
-#
-DESTDIR =
-VPATH = @srcdir@ @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)
-
-objtype = @objtype@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-# Multilib support variables.
-# TOP is used instead of MULTI{BUILD,SRC}TOP.
-MULTISRCTOP =
-MULTIBUILDTOP =
-MULTIDIRS =
-MULTISUBDIR =
-MULTIDO = true
-MULTICLEAN = true
-
-SHELL =	/bin/sh
-
-CC = @CC@
-
-AS = @AS@
-AR = @AR@
-LD = @LD@
-RANLIB = @RANLIB@
-
-CPU_INIT_OBJS = rdimon-aem.o
-CPU_INIT_INSTALL = install-cpu-init
-
-CFLAGS		= -g
-
-# Host specific makefile fragment comes in here.
-@host_makefile_frag@
-
-.PHONY: all
-all: ${CPU_INIT_OBJS}
-
-#
-# here's where we build the test programs for each target
-#
-.PHONY: test
-test:
-
-# Static pattern rule for assembling cpu init files to object files.
-${CPU_INIT_OBJS}: %.o: %.S
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
-
-clean mostlyclean:
-	rm -f a.out core *.i *.o *-test *.srec *.dis *.x
-
-distclean maintainer-clean realclean: clean
-	rm -f Makefile *~
-
-.PHONY: install info install-info clean-info
-install: ${CPU_INIT_INSTALL}
-
-install-cpu-init:
-	test -d $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/cpu-init || mkdir $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/cpu-init
-	set -e; for x in ${CPU_INIT_OBJS}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/cpu-init/$$x; done
-
-doc:
-info:
-install-info:
-clean-info:
-
-Makefile: Makefile.in ../../config.status
-	cd ../.. && $(SHELL) ./config.status --file arm/cpu-init/Makefile
diff --git a/libgloss/arm/cpu-init/Makefile.inc b/libgloss/arm/cpu-init/Makefile.inc
new file mode 100644
index 000000000000..5a8a75657a44
--- /dev/null
+++ b/libgloss/arm/cpu-init/Makefile.inc
@@ -0,0 +1,15 @@
+%C%cpuinitdir = $(tooldir)/lib$(MULTISUBDIR)/cpu-init
+%C%cpuinit_DATA = \
+	%D%/rdimon-aem.o
+
+## The manual dirstamp is needed as automake doesn't recognize compile rules
+## via DATA.  If we ever add rules it does know about, we can drop this.
+%D%/$(am__dirstamp):
+	@$(MKDIR_P) %D%
+	@: > $@
+
+%D%/rdimon-aem.$(OBJEXT): %D%/rdimon-aem.S %D%/$(am__dirstamp)
+	@$(MKDIR_P) %D%
+	$(AM_V_CC)$(COMPILE) -DARM_RDI_MONITOR -o $@ -c $<
+
+CLEANFILES += $(%C%cpuinit_DATA)
diff --git a/libgloss/configure.ac b/libgloss/configure.ac
index 33026534ffee..6b0117805570 100644
--- a/libgloss/configure.ac
+++ b/libgloss/configure.ac
@@ -18,6 +18,8 @@ AC_ARG_ENABLE(newlib-supplied-syscalls,
   *)   AC_MSG_ERROR(bad value ${enableval} for newlib-supplied-syscalls option) ;;
  esac], [newlib_may_supply_syscalls=yes])dnl
 
+AM_CONDITIONAL(MAY_SUPPLY_SYSCALLS, test x[$]{newlib_may_supply_syscalls} = xyes)
+
 AC_PROG_INSTALL
 
 AC_CANONICAL_SYSTEM
@@ -214,8 +216,7 @@ case "${target}" in
 	subdirs="$subdirs rx"
 	;;
   arm*-*-elf | arm*-*-coff | arm*-*-*)
-	AC_CONFIG_FILES([arm/Makefile arm/cpu-init/Makefile])
-	subdirs="$subdirs arm arm/cpu-init"
+	config_arm=true
 	;;
   spu-*-elf)
 	AC_CONFIG_FILES([spu/Makefile])
@@ -250,7 +251,7 @@ 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 bfin iq2000 libnosys lm32 riscv wince
+  aarch64 arm bfin iq2000 libnosys lm32 riscv wince
 ], [dnl
   AM_CONDITIONAL([CONFIG_]m4_toupper(SUBDIR), [test x$config_]SUBDIR = xtrue)
 ])
-- 
2.38.1
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.