libgloss: merge epiphany into top-level Makefile

Message ID 20231228014553.13832-1-vapier@gentoo.org
State New
Headers
Series libgloss: merge epiphany into top-level Makefile |

Commit Message

Mike Frysinger Dec. 28, 2023, 1:45 a.m. UTC
  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
  

Comments

Jeff Johnston Jan. 2, 2024, 9:57 p.m. UTC | #1
Feel free to merge.  Thanks.

-- Jeff J.

On Wed, Dec 27, 2023 at 8:46 PM Mike Frysinger <vapier@gentoo.org> wrote:

> 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 <jeremy.bennett@embecosm.com> 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 <jeremy.bennett@embecosm.com> 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
>
>
  

Patch

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 <jeremy.bennett@embecosm.com> 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 <jeremy.bennett@embecosm.com> 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