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

Mike Frysinger vapier@gentoo.org
Thu Jan 12 02:16:03 GMT 2023


Avoid a recursive make to speed things up a bit.
A nios2-elf build shows installed objects & libs produce same code.
---
 libgloss/Makefile.am        |   3 +
 libgloss/Makefile.in        | 440 ++++++++++++++++++++++++++++++++++--
 libgloss/configure          |  19 +-
 libgloss/configure.ac       |   5 +-
 libgloss/nios2/Makefile.in  | 118 ----------
 libgloss/nios2/Makefile.inc |  32 +++
 6 files changed, 475 insertions(+), 142 deletions(-)
 delete mode 100644 libgloss/nios2/Makefile.in
 create mode 100644 libgloss/nios2/Makefile.inc

diff --git a/libgloss/Makefile.am b/libgloss/Makefile.am
index 13290453c89f..daff91fdfc51 100644
--- a/libgloss/Makefile.am
+++ b/libgloss/Makefile.am
@@ -87,6 +87,9 @@ endif
 if CONFIG_LM32
 include lm32/Makefile.inc
 endif
+if CONFIG_NIOS2
+include nios2/Makefile.inc
+endif
 if CONFIG_RISCV
 include riscv/Makefile.inc
 endif
diff --git a/libgloss/configure.ac b/libgloss/configure.ac
index 59230edc9917..d636cf6d2aaf 100644
--- a/libgloss/configure.ac
+++ b/libgloss/configure.ac
@@ -240,8 +240,7 @@ case "${target}" in
 	subdirs="$subdirs pru"
 	;;
   nios2-*-*)
-	AC_CONFIG_FILES([nios2/Makefile])
-	subdirs="$subdirs nios2"
+	config_nios2=true
 	;;
 esac
 AC_SUBST(subdirs)
@@ -249,7 +248,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 arc arm bfin d30v iq2000 libnosys lm32 riscv wince
+  aarch64 arc arm bfin d30v iq2000 libnosys lm32 nios2 riscv wince
 ], [dnl
   AM_CONDITIONAL([CONFIG_]m4_toupper(SUBDIR), [test x$config_]SUBDIR = xtrue)
 ])
diff --git a/libgloss/nios2/Makefile.in b/libgloss/nios2/Makefile.in
deleted file mode 100644
index cbe1c5552262..000000000000
--- a/libgloss/nios2/Makefile.in
+++ /dev/null
@@ -1,118 +0,0 @@
-# Copyright (c) 1995, 1996, 2001 Cygnus Support  -*- mode:makefile -*-
-# Copyright (c) 2018, Mentor Graphics
-#
-# 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
-
-mkinstalldirs = $(SHELL) $(srcroot)/mkinstalldirs
-
-CC = @CC@
-
-AS = @AS@
-AR = @AR@
-LD = @LD@
-RANLIB = @RANLIB@
-AR_FLAGS = qv
-
-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`
-
-# Linker scripts.
-
-BSP_SCRIPTS=	qemu-hosted.ld
-
-# Semihosting library.
-
-HOSTED_BSP=	libnios2.a
-HOSTED_OBJS=	io-gdb.o io-exit.o \
-		io-close.o io-fstat.o \
-		io-gettimeofday.o io-isatty.o io-lseek.o \
-		io-open.o io-read.o io-rename.o \
-		io-stat.o io-system.o io-time.o \
-		io-unlink.o io-write.o \
-		sbrk.o kill.o getpid.o
-
-# Host specific makefile fragment comes in here.
-@host_makefile_frag@
-
-all :: ${HOSTED_BSP}
-
-# Build semihosting library.
-crt0.o: crt0.S
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) -c $< -o $@
-io-nios2.o: io-nios2.S
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) -c $< -o $@
-$(HOSTED_OBJS): %.o: %.c io.h
-	$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) -DHOSTED=1 $(INCLUDES) -c $< -o $@
-$(HOSTED_BSP): crt0.o io-nios2.o $(HOSTED_OBJS) $(OTHER_OBJS)
-	${AR} ${ARFLAGS} $@ $^
-	${RANLIB} $@
-
-
-.PHONY: install info dvi doc install-info clean-info
-install:: 
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	$(INSTALL_DATA) $(HOSTED_BSP) \
-		$(DESTDIR)$(tooldir)/lib${MULTISUBDIR}
-	for x in ${BSP_SCRIPTS}; do\
-	 ${INSTALL_DATA} ${srcdir}/$${x} $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; \
-	done
-
-# target specific makefile fragment comes in here.
-@target_makefile_frag@
-
-clean mostlyclean:
-	rm -f a.out core *.i *~ *.a *.o *-test *.srec *.dis *.x *.map
-
-distclean maintainer-clean realclean: clean
-	rm -f Makefile config.cache config.log config.status
-
-info dvi doc:
-install-info:
-clean-info:
-
-Makefile: Makefile.in ../config.status
-	cd .. && $(SHELL) config.status
diff --git a/libgloss/nios2/Makefile.inc b/libgloss/nios2/Makefile.inc
new file mode 100644
index 000000000000..da65b601ab77
--- /dev/null
+++ b/libgloss/nios2/Makefile.inc
@@ -0,0 +1,32 @@
+## Linker scripts.
+
+multilibtool_DATA += \
+	%D%/qemu-hosted.ld
+
+## Semihosting library.
+
+multilibtool_LIBRARIES += %D%/libnios2.a
+%C%_libnios2_a_SOURCES = \
+	%D%/crt0.S \
+	%D%/io-close.c \
+	%D%/io-exit.c \
+	%D%/io-fstat.c \
+	%D%/io-gdb.c \
+	%D%/io-gettimeofday.c \
+	%D%/io-isatty.c \
+	%D%/io-lseek.c \
+	%D%/io-nios2.S \
+	%D%/io-open.c \
+	%D%/io-read.c \
+	%D%/io-rename.c \
+	%D%/io-stat.c \
+	%D%/io-system.c \
+	%D%/io-time.c \
+	%D%/io-unlink.c \
+	%D%/io-write.c \
+	%D%/getpid.c \
+	%D%/kill.c \
+	%D%/sbrk.c
+%C%_libnios2_a_CPPFLAGS = \
+	$(AM_CPPFLAGS) \
+	-DHOSTED=1
-- 
2.39.0



More information about the Newlib mailing list