diff options
author | Mike Frysinger <vapier@gentoo.org> | 2022-12-13 22:27:35 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2023-01-11 01:00:21 -0500 |
commit | 275b39e219d06ec26715bf2b53812513e37e7c04 (patch) | |
tree | e5e124c767b8c8b23bea912448794847e004981e /libgloss/arm | |
parent | 26f9cfd7a8034919448ab4604a9c9d39c04b8d19 (diff) | |
download | newlib-275b39e219d06ec26715bf2b53812513e37e7c04.zip newlib-275b39e219d06ec26715bf2b53812513e37e7c04.tar.gz newlib-275b39e219d06ec26715bf2b53812513e37e7c04.tar.bz2 |
libgloss: merge arm into top-level Makefile
Avoid a recursive make to speed things up a bit.
Diffstat (limited to 'libgloss/arm')
-rw-r--r-- | libgloss/arm/Makefile.in | 241 | ||||
-rw-r--r-- | libgloss/arm/Makefile.inc | 89 | ||||
-rw-r--r-- | libgloss/arm/acinclude.m4 | 10 | ||||
-rw-r--r-- | libgloss/arm/cpu-init/Makefile.in | 84 | ||||
-rw-r--r-- | libgloss/arm/cpu-init/Makefile.inc | 15 |
5 files changed, 104 insertions, 335 deletions
diff --git a/libgloss/arm/Makefile.in b/libgloss/arm/Makefile.in deleted file mode 100644 index d0d5ea8..0000000 --- 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 0000000..41fce3c --- /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 b34a40f..d61474d 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 49ad538..0000000 --- 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 0000000..5a8a756 --- /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) |