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

Mike Frysinger vapier@gentoo.org
Fri Dec 29 05:04:45 GMT 2023


Avoid a recursive make to speed things up a bit.
A or1k-elf build shows installed objects & libs produce same code.
---
 libgloss/Makefile.am        |   3 +
 libgloss/Makefile.in        | 448 ++++++++++++++++++++++++++++--------
 libgloss/configure          |  19 +-
 libgloss/configure.ac       |   5 +-
 libgloss/or1k/Makefile.in   | 145 ------------
 libgloss/or1k/Makefile.inc  |  66 ++++++
 libgloss/or1k/boards/README |   5 +-
 7 files changed, 436 insertions(+), 255 deletions(-)
 delete mode 100644 libgloss/or1k/Makefile.in
 create mode 100644 libgloss/or1k/Makefile.inc

diff --git a/libgloss/Makefile.am b/libgloss/Makefile.am
index 00a637a13831..e685be708abe 100644
--- a/libgloss/Makefile.am
+++ b/libgloss/Makefile.am
@@ -126,6 +126,9 @@ endif
 if CONFIG_NIOS2
 include nios2/Makefile.inc
 endif
+if CONFIG_OR1K
+include or1k/Makefile.inc
+endif
 if CONFIG_RISCV
 include riscv/Makefile.inc
 endif
diff --git a/libgloss/configure.ac b/libgloss/configure.ac
index 8856e9c0ff11..165e56b48237 100644
--- a/libgloss/configure.ac
+++ b/libgloss/configure.ac
@@ -215,8 +215,7 @@ case "${target}" in
 	config_iq2000=true
 	;;
   or1k-*-* | or1knd-*-* )
-	AC_CONFIG_FILES([or1k/Makefile])
-	subdirs="$subdirs or1k"
+	config_or1k=true
 	;;
   pru-*-*)
 	AC_CONFIG_FILES([pru/Makefile])
@@ -233,7 +232,7 @@ dnl the ports above will too!
 m4_foreach_w([SUBDIR], [
   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
+  nds32 nios2 or1k riscv rl78 rx v850 visium wince xstormy16 xtensa
 ], [dnl
   AM_CONDITIONAL([CONFIG_]m4_toupper(SUBDIR), [test x$config_]SUBDIR = xtrue)
 ])
diff --git a/libgloss/or1k/Makefile.in b/libgloss/or1k/Makefile.in
deleted file mode 100644
index c75d6e454633..000000000000
--- a/libgloss/or1k/Makefile.in
+++ /dev/null
@@ -1,145 +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@
-includedir = @includedir@
-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 = `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`
-
-# object files needed
-COMMON_FILES = syscalls \
-	or1k_uart \
-	outbyte \
-	caches-asm \
-	exceptions \
-	exceptions-asm \
-	interrupts \
-	interrupts-asm \
-	mmu-asm \
-	timer \
-	sbrk \
-	impure \
-	util \
-	sync-asm
-
-LIBOR1K_FILES = $(COMMON_FILES)
-LIBOR1K_OBJS = $(addsuffix .o,$(LIBOR1K_FILES))
-
-BOARDS = atlys \
-	de0_nano \
-	ml501 \
-	optimsoc \
-	or1ksim \
-	or1ksim-uart \
-	ordb1a3pe1500 \
-	ordb2a \
-	orpsocrefdesign
-
-BOARD_LIBS = $(addprefix libboard-,$(addsuffix .a,$(BOARDS)))
-BOARD_OBJS = $(addprefix libboard-,$(addsuffix .o,$(BOARDS)))
-
-GCC_LDFLAGS = `if [ -d ${objroot}/../gcc ] ; \
-	then echo -L${objroot}/../gcc ; fi`
-
-OUTPUTS = libor1k.a crt0.o ${BOARD_LIBS}
-
-# Host specific makefile fragment comes in here.
-@host_makefile_frag@
-
-
-all: ${OUTPUTS}
-
-#
-# here's where we build the library for each target
-#
-
-libor1k.a: $(LIBOR1K_OBJS)
-	${AR} ${ARFLAGS} $@ $(LIBOR1K_OBJS)
-	${RANLIB} $@
-
-libboard-%.o: boards/%.S
-	${CC} ${CFLAGS} -o $@ -c $<
-
-libboard-%.o: boards/%.c
-	${CC} ${CFLAGS} -o $@ -c $<
-
-libboard-%.a: libboard-%.o
-	${AR} ${ARFLAGS} $@ $<
-	${RANLIB} $@
-
-doc:
-
-clean mostlyclean:
-	rm -f $(OUTPUTS) $(BOARD_LIBS) *.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:
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR} $(DESTDIR)$(tooldir)/include
-	@for outputs in ${OUTPUTS}; do\
-	 $(INSTALL_DATA) $${outputs} $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \
-	done
-	$(INSTALL_DATA) ${srcdir}/include/or1k-support.h $(DESTDIR)$(tooldir)/include/
-	$(INSTALL_DATA) ${srcdir}/include/or1k-sprs.h $(DESTDIR)$(tooldir)/include/
-	$(INSTALL_DATA) ${srcdir}/include/or1k-asm.h $(DESTDIR)$(tooldir)/include/
-	$(INSTALL_DATA) ${srcdir}/include/or1k-nop.h $(DESTDIR)$(tooldir)/include/
-
-info:
-install-info:
-clean-info:
-
-Makefile: Makefile.in ../config.status
-	cd .. && $(SHELL) config.status
diff --git a/libgloss/or1k/Makefile.inc b/libgloss/or1k/Makefile.inc
new file mode 100644
index 000000000000..ecb7a83df52f
--- /dev/null
+++ b/libgloss/or1k/Makefile.inc
@@ -0,0 +1,66 @@
+## 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
+
+includetool_DATA += \
+	%D%/include/or1k-asm.h \
+	%D%/include/or1k-nop.h \
+	%D%/include/or1k-sprs.h \
+	%D%/include/or1k-support.h
+
+multilibtool_LIBRARIES += %D%/libor1k.a
+%C%_libor1k_a_SOURCES = \
+	%D%/syscalls.c \
+	%D%/or1k_uart.c \
+	%D%/outbyte.c \
+	%D%/caches-asm.S \
+	%D%/exceptions.c \
+	%D%/exceptions-asm.S \
+	%D%/interrupts.c \
+	%D%/interrupts-asm.S \
+	%D%/mmu-asm.S \
+	%D%/timer.c \
+	%D%/sbrk.c \
+	%D%/impure.c \
+	%D%/util.c \
+	%D%/sync-asm.S
+
+## Now all the board definitions.
+
+multilibtool_LIBRARIES += %D%/libboard-atlys.a
+%C%_libboard_atlys_a_SOURCES = %D%/boards/atlys.S
+
+multilibtool_LIBRARIES += %D%/libboard-de0_nano.a
+%C%_libboard_de0_nano_a_SOURCES = %D%/boards/de0_nano.S
+
+multilibtool_LIBRARIES += %D%/libboard-ml501.a
+%C%_libboard_ml501_a_SOURCES = %D%/boards/ml501.S
+
+multilibtool_LIBRARIES += %D%/libboard-optimsoc.a
+%C%_libboard_optimsoc_a_SOURCES = %D%/boards/optimsoc.S
+
+multilibtool_LIBRARIES += %D%/libboard-or1ksim.a
+%C%_libboard_or1ksim_a_SOURCES = %D%/boards/or1ksim.S
+
+multilibtool_LIBRARIES += %D%/libboard-or1ksim-uart.a
+%C%_libboard_or1ksim_uart_a_SOURCES = %D%/boards/or1ksim-uart.S
+
+multilibtool_LIBRARIES += %D%/libboard-ordb1a3pe1500.a
+%C%_libboard_ordb1a3pe1500_a_SOURCES = %D%/boards/ordb1a3pe1500.S
+
+multilibtool_LIBRARIES += %D%/libboard-ordb2a.a
+%C%_libboard_ordb2a_a_SOURCES = %D%/boards/ordb2a.S
+
+multilibtool_LIBRARIES += %D%/libboard-orpsocrefdesign.a
+%C%_libboard_orpsocrefdesign_a_SOURCES = %D%/boards/orpsocrefdesign.S
diff --git a/libgloss/or1k/boards/README b/libgloss/or1k/boards/README
index b6c5abf92c52..290b798b5552 100644
--- a/libgloss/or1k/boards/README
+++ b/libgloss/or1k/boards/README
@@ -60,6 +60,5 @@ steps:
        implementation. It is recommended to do so in assembler board files to
        keep the ability to overwrite the default implementation by the user.
 
-When you are done with your board, add it to libgloss/or1k/Makefile.in to the
-BOARDS variable and compile.
-
+When you are done with your board, add it to libgloss/or1k/Makefile.inc like the
+other libboard-*.a definitions and compile.
-- 
2.43.0



More information about the Newlib mailing list