[PATCH] libgloss: merge epiphany 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 epiphany-elf build shows installed objects & libs produce same code.
---
 libgloss/Makefile.am           |   3 +
 libgloss/Makefile.in           | 502 +++++++++++++++++++++------------
 libgloss/configure             |  20 +-
 libgloss/configure.ac          |   6 +-
 libgloss/epiphany/Makefile.in  | 194 -------------
 libgloss/epiphany/Makefile.inc |  56 ++++
 6 files changed, 403 insertions(+), 378 deletions(-)
 delete mode 100644 libgloss/epiphany/Makefile.in
 create mode 100644 libgloss/epiphany/Makefile.inc

diff --git a/libgloss/Makefile.am b/libgloss/Makefile.am
index b15643c465f2..00a637a13831 100644
--- a/libgloss/Makefile.am
+++ b/libgloss/Makefile.am
@@ -81,6 +81,9 @@ endif
 if CONFIG_D30V
 include d30v/Makefile.inc
 endif
+if CONFIG_EPIPHANY
+include epiphany/Makefile.inc
+endif
 if CONFIG_FRV
 include frv/Makefile.inc
 endif
diff --git a/libgloss/configure.ac b/libgloss/configure.ac
index faf569a0f5b2..8856e9c0ff11 100644
--- a/libgloss/configure.ac
+++ b/libgloss/configure.ac
@@ -58,9 +58,7 @@ case "${target}" in
 	config_csky=true
 	;;
   epiphany-*-*)
-	AC_CONFIG_FILES([epiphany/Makefile])
-	subdirs="$subdirs epiphany"
-	config_testsuite=true
+	config_epiphany=true
 	;;
   i[[3456]]86-*-elf* | i[[3456]]86-*-coff*)
 	config_i386=true
@@ -233,7 +231,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 csky d30v frv i386 i960 iq2000 libnosys lm32
+  aarch64 arc arm bfin csky d30v epiphany frv i386 i960 iq2000 libnosys lm32
   m32r mcore mn10200 mn10300 moxie msp430
   nds32 nios2 riscv rl78 rx v850 visium wince xstormy16 xtensa
 ], [dnl
diff --git a/libgloss/epiphany/Makefile.in b/libgloss/epiphany/Makefile.in
deleted file mode 100644
index 6670b79a08f1..000000000000
--- a/libgloss/epiphany/Makefile.in
+++ /dev/null
@@ -1,194 +0,0 @@
-# Makefile for libgloss/epiphany
-
-# Copyright (c) 2011, 2012 Adapteva, Inc.
-# All rights reserved.
-
-# Contributor Jeremy Bennett <[email protected]> for Adapteva Inc
-
-# 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 Adapteva 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 HOLDER 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.
-
-# Standard proforma copied from libnosys
-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
-
-CC = @CC@
-
-#AS = @AS@
-AS = `if [ -f ${objroot}/../gas/as-new ] ; \
-	then echo ${objroot}/../gas/as-new ; \
-	else echo as ; fi`
-
-AR = @AR@
-
-#LD = @LD@
-LD = `if [ -f ${objroot}/../ld/ld-new ] ; \
-	then echo ${objroot}/../ld/ld-new ; \
-	else echo ld ; fi`
-
-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`
-
-GCC_LDFLAGS = `if [ -d ${objroot}/../gcc ] ; \
-	then echo -L${objroot}/../gcc ; fi`
-
-NEWLIB_CFLAGS = `if [ -d ${objroot}/newlib ]; then echo -I${objroot}/newlib/targ-include -I${srcroot}/newlib/libc/include; fi`
-NEWLIB_LDFLAGS = `if [ -d ${objroot}/newlib ]; then echo -B${objroot}/newlib/ -L${objroot}/newlib/; fi`
-
-INCLUDES = -I. -I$(srcdir)/.. -I$(srcdir)/../../newlib/libc/machine/epiphany
-
-# Note that when building the library, ${MULTILIB} is not the way multilib
-# options are passed; they're passed in $(CFLAGS).
-CFLAGS_FOR_TARGET = ${MULTILIB} ${INCLUDES} ${NEWLIB_CFLAGS}
-LDFLAGS_FOR_TARGET = ${MULTILIB} ${NEWLIB_LDFLAGS}
-AR_FLAGS = qc
-
-.c.o:
-	$(CC) $(CFLAGS_FOR_TARGET) -O2 $(INCLUDES) -c $(CFLAGS) $<
-
-.C.o:
-	$(CC) $(CFLAGS_FOR_TARGET) -O2 $(INCLUDES) -c $(CFLAGS) $<
-.S.o:
-	$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -c $(CFLAGS) $<
-.s.o:
-	$(AS) $(ASFLAGS_FOR_TARGET) $(ASFLAGS) -o $*.o $<
-
-#
-# GCC knows to run the preprocessor on .S files before it assembles them.
-#
-.S.o:
-	$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -c $<
-
-#
-# this is a bogus target that'll produce an assembler from the
-# C source with the right compiler options. this is so we can
-# track down code generation or debug symbol bugs.
-#
-.c.s:
-	$(CC) $(CFLAGS_FOR_TARGET) -S $(INCLUDES) $(CFLAGS) $<
-
-# EPIPHANY specific stuff
-
-# Object files needed for all libraries
-COMMON_OBJS = access.o  \
-              close.o    \
-              environ.o  \
-              execve.o   \
-              fork.o     \
-              fstat.o    \
-              getpid.o   \
-              gettimeofday.o \
-              _isatty.o  \
-              kill.o     \
-              link.o     \
-              lseek.o    \
-              open.o     \
-              read.o     \
-              sbrk.o     \
-              stat.o     \
-              times.o    \
-              unlink.o   \
-              wait.o     \
-              write.o    \
-              _exit.o    \
-              epiphany-syscalls.o \
-              epiphany-ivthandlers.o
-
-UNUSED_OBJS = chown.o    \
-              errno.o    \
-              gettod.o   \
-              readlink.o \
-              symlink.o
-
-# Object files specific to particular targets.
-SIMOBJS = $(COMMON_OBJS)
-
-OUTPUTS = libepiphany.a crt0.o
-
-all: $(OUTPUTS)
-
-#
-# here's where we build the library for each target
-#
-
-libepiphany.a: $(SIMOBJS)
-	${AR} ${ARFLAGS} $@ $(SIMOBJS)
-	${RANLIB} $@
-
-_exit.o: _exit.S
-	$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -c $<
-
-doc:
-
-clean mostlyclean:
-	rm -f $(OUTPUTS) *.i *~ *.o *-test *.srec *.dis *.map *.x
-
-distclean maintainer-clean realclean: clean
-	rm -f Makefile config.status $(OUTPUTS)
-
-.PHONY: install info install-info clean-info
-install:
-	@for outputs in ${OUTPUTS}; do\
-	 mkdir -p $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \
-	 $(INSTALL_PROGRAM) $${outputs} $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \
-	done
-info:
-install-info:
-clean-info:
-
-Makefile: Makefile.in ../config.status
-	cd .. && $(SHELL) config.status
diff --git a/libgloss/epiphany/Makefile.inc b/libgloss/epiphany/Makefile.inc
new file mode 100644
index 000000000000..ad9fa30b410b
--- /dev/null
+++ b/libgloss/epiphany/Makefile.inc
@@ -0,0 +1,56 @@
+## Copyright (c) 2011, 2012 Adapteva, Inc.
+## All rights reserved.
+##
+## Contributor Jeremy Bennett <[email protected]> for Adapteva Inc
+##
+## 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 Adapteva 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 HOLDER 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.
+
+multilibtool_DATA += %D%/crt0.o
+libobjs_a_SOURCES += %D%/crt0.S
+
+multilibtool_LIBRARIES += %D%/libepiphany.a
+%C%_libepiphany_a_SOURCES = \
+	%D%/access.c \
+	%D%/close.c \
+	%D%/environ.c \
+	%D%/execve.c \
+	%D%/fork.c \
+	%D%/fstat.c \
+	%D%/getpid.c \
+	%D%/gettimeofday.c \
+	%D%/_isatty.c \
+	%D%/kill.c \
+	%D%/link.c \
+	%D%/lseek.c \
+	%D%/open.c \
+	%D%/read.c \
+	%D%/sbrk.c \
+	%D%/stat.c \
+	%D%/times.c \
+	%D%/unlink.c \
+	%D%/wait.c \
+	%D%/write.c \
+	%D%/_exit.S \
+	%D%/epiphany-syscalls.c \
+	%D%/epiphany-ivthandlers.S
-- 
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.