[PATCH] libgloss: merge nios2 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 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
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.