public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] libgloss: merge i386 into top-level Makefile
@ 2023-12-27  3:40 Mike Frysinger
  0 siblings, 0 replies; only message in thread
From: Mike Frysinger @ 2023-12-27  3:40 UTC (permalink / raw)
  To: newlib

Avoid a recursive make to speed things up a bit.
A i386-elf build shows installed objects & libs produce same code other
than a rename from cygmon-gmon.o & cygmon-salib.o to i386_libcygmon_a-*.o
due to the use of custom CPPFLAGS in here.
---
 libgloss/Makefile.am       |   3 +
 libgloss/Makefile.in       | 260 +++++++++++++++++++++++--------------
 libgloss/configure         |  19 ++-
 libgloss/configure.ac      |   5 +-
 libgloss/i386/Makefile.in  | 127 ------------------
 libgloss/i386/Makefile.inc |  25 ++++
 6 files changed, 208 insertions(+), 231 deletions(-)
 delete mode 100644 libgloss/i386/Makefile.in
 create mode 100644 libgloss/i386/Makefile.inc

diff --git a/libgloss/Makefile.am b/libgloss/Makefile.am
index aed0ee462dbe..c329d4078e10 100644
--- a/libgloss/Makefile.am
+++ b/libgloss/Makefile.am
@@ -84,6 +84,9 @@ endif
 if CONFIG_FRV
 include frv/Makefile.inc
 endif
+if CONFIG_I386
+include i386/Makefile.inc
+endif
 if CONFIG_I960
 include i960/Makefile.inc
 endif
diff --git a/libgloss/configure.ac b/libgloss/configure.ac
index 9ca179c34045..f0eb1f21ec75 100644
--- a/libgloss/configure.ac
+++ b/libgloss/configure.ac
@@ -63,8 +63,7 @@ case "${target}" in
 	config_testsuite=true
 	;;
   i[[3456]]86-*-elf* | i[[3456]]86-*-coff*)
-	AC_CONFIG_FILES([i386/Makefile])
-	subdirs="$subdirs i386"
+	config_i386=true
 	;;
   m32r-*-*)
 	AC_CONFIG_FILES([m32r/Makefile])
@@ -245,7 +244,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 i960 iq2000 libnosys lm32 moxie msp430
+  aarch64 arc arm bfin csky d30v frv i386 i960 iq2000 libnosys lm32 moxie msp430
   nios2 riscv v850 wince xtensa
 ], [dnl
   AM_CONDITIONAL([CONFIG_]m4_toupper(SUBDIR), [test x$config_]SUBDIR = xtrue)
diff --git a/libgloss/i386/Makefile.in b/libgloss/i386/Makefile.in
deleted file mode 100644
index 7ed0b075f72e..000000000000
--- a/libgloss/i386/Makefile.in
+++ /dev/null
@@ -1,127 +0,0 @@
-# Copyright (c) 1997, 2000 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@
-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`
-
-CRT0 = cygmon-crt0.o
-CYGMON_OBJS = cygmon-salib.o cygmon-gmon.o
-
-CFLAGS = -g
-
-GCC_LDFLAGS = `if [ -d ${objroot}/../gcc ] ; \
-	then echo -L${objroot}/../gcc ; fi`
-
-SCRIPTS = cygmon
-BSP = libcygmon.a
-
-# Host specific makefile fragment comes in here.
-@host_makefile_frag@
-
-all: ${CRT0} ${BSP}
-
-#
-# here's where we build the board support packages for each target
-#
-libcygmon.a: $(CYGMON_OBJS)
-	${AR} ${ARFLAGS} $@ $(CYGMON_OBJS)
-	${RANLIB} $@
-
-cygmon-salib.o: ${srcdir}/cygmon-salib.c
-	$(CC) -c $(CFLAGS) $(I386_CPPFLAGS) $(<) -o $@
-
-cygmon-crt0.o: ${srcdir}/cygmon-crt0.S
-	$(CC) -c $(CFLAGS) $(I386_CPPFLAGS) $(<) -o $@
-
-doc:	
-
-clean mostlyclean:
-	rm -f a.out core *.i *~ *.o *-test *.srec *.dis *.map *.x
-
-distclean maintainer-clean realclean: clean
-	rm -f Makefile a.out
-
-.PHONY: install info install-info clean-info
-install:
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	$(INSTALL_PROGRAM) $(CRT0) $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$(CRT0)
-	@for bsp in ${BSP}; do\
-	 $(INSTALL_PROGRAM) $${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:
-
-test.o:	${srcdir}/test.c
-
-# these are for the BSPs
-${CRT0}: cygmon-crt0.S
-
-Makefile: Makefile.in ../config.status
-	cd .. && $(SHELL) config.status
diff --git a/libgloss/i386/Makefile.inc b/libgloss/i386/Makefile.inc
new file mode 100644
index 000000000000..a0825611ad9b
--- /dev/null
+++ b/libgloss/i386/Makefile.inc
@@ -0,0 +1,25 @@
+## Copyright (c) 1997, 2000 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%/cygmon.ld
+
+multilibtool_DATA += %D%/cygmon-crt0.o
+libobjs_a_SOURCES += %D%/cygmon-crt0.S
+
+multilibtool_LIBRARIES += %D%/libcygmon.a
+%C%_libcygmon_a_SOURCES = \
+	%D%/cygmon-salib.c \
+	%D%/cygmon-gmon.c
+%C%_libcygmon_a_CPPFLAGS = \
+	$(AM_CPPFLAGS) \
+	$(I386_CPPFLAGS)
-- 
2.43.0


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-12-27  3:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-27  3:40 [PATCH] libgloss: merge i386 into top-level Makefile Mike Frysinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).