[PATCH] libgloss: merge visium 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 visium-elf build shows installed objects & libs produce same code.
---
 libgloss/Makefile.am           |   3 +
 libgloss/Makefile.in           | 239 +++++++++++++++++++++++++--------
 libgloss/configure             |  19 ++-
 libgloss/configure.ac          |   5 +-
 libgloss/visium/Makefile.in    | 132 ------------------
 libgloss/visium/Makefile.inc   |  53 ++++++++
 libgloss/visium/sim-syscalls.c |  31 +++++
 7 files changed, 290 insertions(+), 192 deletions(-)
 delete mode 100644 libgloss/visium/Makefile.in
 create mode 100644 libgloss/visium/Makefile.inc
 create mode 100644 libgloss/visium/sim-syscalls.c

diff --git a/libgloss/Makefile.am b/libgloss/Makefile.am
index d51a7a2a9ade..b15643c465f2 100644
--- a/libgloss/Makefile.am
+++ b/libgloss/Makefile.am
@@ -138,6 +138,9 @@ endif
 if CONFIG_V850
 include v850/Makefile.inc
 endif
+if CONFIG_VISIUM
+include visium/Makefile.inc
+endif
 if CONFIG_XSTORMY16
 include xstormy16/Makefile.inc
 endif
diff --git a/libgloss/configure.ac b/libgloss/configure.ac
index 60f4f35b64cc..faf569a0f5b2 100644
--- a/libgloss/configure.ac
+++ b/libgloss/configure.ac
@@ -170,8 +170,7 @@ case "${target}" in
 	config_v850=true
 	;;
   visium-*-*)
-	AC_CONFIG_FILES([visium/Makefile])
-	subdirs="$subdirs visium"
+	config_visium=true
 	config_testsuite=false
 	;;
   xc16x-*-*)
@@ -236,7 +235,7 @@ dnl the ports above will too!
 m4_foreach_w([SUBDIR], [
   aarch64 arc arm bfin csky d30v frv i386 i960 iq2000 libnosys lm32
   m32r mcore mn10200 mn10300 moxie msp430
-  nds32 nios2 riscv rl78 rx v850 wince xstormy16 xtensa
+  nds32 nios2 riscv rl78 rx v850 visium wince xstormy16 xtensa
 ], [dnl
   AM_CONDITIONAL([CONFIG_]m4_toupper(SUBDIR), [test x$config_]SUBDIR = xtrue)
 ])
diff --git a/libgloss/visium/Makefile.in b/libgloss/visium/Makefile.in
deleted file mode 100644
index bc18b2951edb..000000000000
--- a/libgloss/visium/Makefile.in
+++ /dev/null
@@ -1,132 +0,0 @@
-# Copyright (c) 1998 Cygnus Support
-#
-# 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@
-
-OBJDUMP = `t='$(program_transform_name)'; echo objdump | sed -e $$t`
-OBJCOPY = `t='$(program_transform_name)'; echo objcopy | sed -e $$t`
-
-# Generic object files common to some targets.
-# These are LIBGLOSS stubs and minimal functionality in SBRK, READ and WRITE.
-OBJS =  close.o fstat.o getpid.o isatty.o kill.o lseek.o open.o \
-	print.o putnum.o read.o stat.o unlink.o write.o
-
-# Object files specific to particular targets.
-SERIALOBJS = ${OBJS} _exit.o gettod.o sbrk.o serial-inbyte.o serial-outbyte.o
-
-# These go with the hosted file I/O libraries with a version of syscalls.
-HOSTEDOBJS = getpid.o kill.o io-gdb.o io-stubs.o sbrk.o
-
-SCRIPTS =
-BSP = crt0.o libserial.a libsim.a libdebug.a
-
-# Host specific makefile fragment comes in here.
-@host_makefile_frag@
-
-all: ${BSP}
-
-#
-# here's where we build the board support packages for each target
-#
-
-libserial.a: $(SERIALOBJS)
-	$(AR) $(ARFLAGS) $@ $^
-	$(RANLIB) $@
-
-libsim.a: ${HOSTEDOBJS} sim-syscalls.o
-	${AR} ${ARFLAGS} $@ $^
-	${RANLIB} $@
-
-libdebug.a: ${HOSTEDOBJS} debug-syscalls.o
-	${AR} ${ARFLAGS} $@ $^
-	${RANLIB} $@
-
-sim-syscalls.o: syscalls.c syscall.h io.h
-	${CC} ${CFLAGS_FOR_TARGET} ${CFLAGS} -DTARGET_SIM -c -o $@ $<
-
-debug-syscalls.o: syscalls.c syscall.h io.h
-	${CC} ${CFLAGS_FOR_TARGET} ${CFLAGS} -c -o $@ $<
-
-sbrk.o: $(srcdir)/sbrk.c
-	${CC} ${CFLAGS_FOR_TARGET} ${CFLAGS} -c -o $@ $<
-
-$(OBJS): %.o: ../%.c
-	${CC} ${CFLAGS_FOR_TARGET} ${CFLAGS} -c -o $@ $<
-
-doc:
-
-clean mostlyclean:
-	rm -f a.out core *.i *~ *.o *-test *.srec *.dis *.map *.x
-
-distclean maintainer-clean realclean: clean
-	rm -f Makefile config.status a.out
-
-.PHONY: install info install-info clean-info
-install:
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	@for bsp in ${BSP}; do\
-	 $(INSTALL_DATA) $${bsp} $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \
-	done
-	@for script in ${SCRIPTS}; do\
-	 $(INSTALL_DATA) $(srcdir)/$${script}.ld $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$${script}.ld; \
-	done
-
-info:
-install-info:
-clean-info:
-
-# target specific makefile fragment comes in here.
-@target_makefile_frag@
-
-Makefile: Makefile.in ../config.status
-	cd .. && $(SHELL) config.status
diff --git a/libgloss/visium/Makefile.inc b/libgloss/visium/Makefile.inc
new file mode 100644
index 000000000000..cd268c95bfa7
--- /dev/null
+++ b/libgloss/visium/Makefile.inc
@@ -0,0 +1,53 @@
+## Copyright (c) 1998 Cygnus Support
+##
+## 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.
+
+multilibtool_DATA += %D%/crt0.o
+libobjs_a_SOURCES += %D%/crt0.S
+
+## These go with the hosted file I/O libraries with a version of syscalls.
+%C%_hosted_sources = \
+	getpid.c \
+	kill.c \
+	%D%/io-gdb.c \
+	%D%/io-stubs.c \
+	%D%/sbrk.c
+
+multilibtool_LIBRARIES += %D%/libserial.a
+%C%_libserial_a_SOURCES = \
+	close.c \
+	fstat.c \
+	getpid.c \
+	isatty.c \
+	kill.c \
+	lseek.c \
+	open.c \
+	print.c \
+	putnum.c \
+	read.c \
+	stat.c \
+	unlink.c \
+	write.c \
+	%D%/_exit.c \
+	%D%/gettod.c \
+	%D%/sbrk.c \
+	%D%/serial-inbyte.c \
+	%D%/serial-outbyte.c
+
+multilibtool_LIBRARIES += %D%/libsim.a
+%C%_libsim_a_SOURCES = \
+	$(%C%_hosted_sources) \
+	%D%/sim-syscalls.c
+
+multilibtool_LIBRARIES += %D%/libdebug.a
+%C%_libdebug_a_SOURCES = \
+	$(%C%_hosted_sources) \
+	%D%/syscalls.c
diff --git a/libgloss/visium/sim-syscalls.c b/libgloss/visium/sim-syscalls.c
new file mode 100644
index 000000000000..1a6bb325987b
--- /dev/null
+++ b/libgloss/visium/sim-syscalls.c
@@ -0,0 +1,31 @@
+/* system calls for the Visium processor.
+
+   Copyright (c) 2015 Rolls-Royce Controls and Data Services Limited.
+   All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are met:
+
+     * Redistributions of source code must retain the above copyright notice,
+       this list of conditions and the following disclaimer.
+     * Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+     * Neither the name of Rolls-Royce Controls and Data Services Limited nor
+       the names of its contributors may be used to endorse or promote products
+       derived from this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+   THE POSSIBILITY OF SUCH DAMAGE.  */
+
+#define TARGET_SIM
+#include "syscalls.c"
-- 
2.43.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.