From 955a9ba74c6f0e5ad3787d149c56bc90c22ee045 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 1 Dec 1999 15:05:26 +0000 Subject: Patch rtems-rc-19991123-rc-2.diff from Ralf Corsepius which implements automake support for some score/cpu/ subdirectories and fixes a few minor configuration bugs. To apply: rm -rf c/src/exec/score/cpu/a29k/wrap rm -rf c/src/exec/score/cpu/hppa1.1/wrap rm -rf c/src/exec/score/cpu/i386/wrap rm -rf c/src/exec/score/cpu/mips64orion/wrap rm -rf c/src/exec/score/cpu/no_cpu/wrap patch -p1 < rtems-rc-19991123-rc-2.diff.gz Notes: * I don't see a possiblity to convert the powerpc subdirectory in its current layout to automake the time being. * Besides the fact that this subdirectory is not in single-tree building layout, the actual showstopper is the ifeq $(RTEMS_CPU_MODEL),mpc750) gmake-conditional in powerpc/Makefile.in, which automake (correctly) refuses to handle. * The problem is *not* specific to the powerpc. Other CPUs basically have similar problems (SH:sh7032 vs sh7045, SPARC: erc32.h in score/cpu/sparc), but have been lucky to get around real issues (cf. configuration files below score/cpu/sh/). * From a configuration focused POV this problem boils down to a file/subdirectory selection problem: ppc: 1 or others sh: 1 out of 2 sparc: 1 out of 1 Automake's means to implement such behavior is using conditionals to be evaluated at configuration-time. The old configuration scheme however used make-time conditionals. The SH port was lucky to get around this issue because it applies a selection from a limited set of possible selections, the powerpc however applies a selection from an unlimited set, based on data not being available at configuration time. * Currently I only see two general solutions: 1) make RTEMS_CPU_MODEL available at configuration time, ie. replace make-time configuration by configuration-time configuration 2) Perform the selection at build-time, i.e. always install all files, but use #ifdef #else #endif in source files. This is what the m68k has exploited at other locations inside of the source-tree. => This directory is the last one remaining not using automake below the whole exec/ hierarchy. --- cpukit/score/cpu/a29k/Makefile.am | 53 ++++++++++++++++++++++++++++++++ cpukit/score/cpu/hppa1.1/Makefile.am | 53 ++++++++++++++++++++++++++++++++ cpukit/score/cpu/i386/Makefile.am | 53 ++++++++++++++++++++++++++++++++ cpukit/score/cpu/mips/Makefile.am | 53 ++++++++++++++++++++++++++++++++ cpukit/score/cpu/mips64orion/Makefile.am | 53 ++++++++++++++++++++++++++++++++ cpukit/score/cpu/no_cpu/Makefile.am | 53 ++++++++++++++++++++++++++++++++ 6 files changed, 318 insertions(+) create mode 100644 cpukit/score/cpu/a29k/Makefile.am create mode 100644 cpukit/score/cpu/hppa1.1/Makefile.am create mode 100644 cpukit/score/cpu/i386/Makefile.am create mode 100644 cpukit/score/cpu/mips/Makefile.am create mode 100644 cpukit/score/cpu/mips64orion/Makefile.am create mode 100644 cpukit/score/cpu/no_cpu/Makefile.am (limited to 'cpukit') diff --git a/cpukit/score/cpu/a29k/Makefile.am b/cpukit/score/cpu/a29k/Makefile.am new file mode 100644 index 0000000000..ee69311ec8 --- /dev/null +++ b/cpukit/score/cpu/a29k/Makefile.am @@ -0,0 +1,53 @@ +## +## $Id$ +## + +AUTOMAKE_OPTIONS = foreign 1.4 +ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../../../../../../automake/lib.am + +SUBDIRS = rtems + +# C source names +C_FILES = cpu.c +C_O_FILES = $(C_FILES:%.c=${ARCH}/%.o) + +H_FILES = amd.ah asm.h cpu_asm.h pswmacro.ah register.ah +noinst_HEADERS = $(H_FILES) + +# S source names +S_FILES = cpu_asm.S sig.S +S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o) + +PREINSTALL_FILES = \ +$(PROJECT_INCLUDE) \ +$(H_FILES:%=$(PROJECT_INCLUDE)/%) + +$(PROJECT_INCLUDE): + $(mkinstalldirs) $@ + +$(PROJECT_INCLUDE)/%.h: %.h + $(INSTALL_DATA) $< $@ + +TMPINSTALL_FILES += \ +$(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o + +$(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o: $(ARCH)/rtems.o + $(INSTALL_DATA) $< $@ + +REL = $(ARCH)/rtems-cpu.rel + +$(REL): $(C_O_FILES) $(S_O_FILES) + $(make-rel) + +all-local: $(ARCH) $(ARCH)/rtems.o $(REL) $(TMPINSTALL_FILES) + +EXTRA_DIST = \ +cpu.c \ +cpu_asm.S sig.S \ +rtems.c + +include $(top_srcdir)/../../../../../../automake/subdirs.am +include $(top_srcdir)/../../../../../../automake/local.am diff --git a/cpukit/score/cpu/hppa1.1/Makefile.am b/cpukit/score/cpu/hppa1.1/Makefile.am new file mode 100644 index 0000000000..2adb4f8eed --- /dev/null +++ b/cpukit/score/cpu/hppa1.1/Makefile.am @@ -0,0 +1,53 @@ +## +## $Id$ +## + +AUTOMAKE_OPTIONS = foreign 1.4 +ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../../../../../../automake/lib.am + +SUBDIRS = rtems + +# C source names +C_FILES = cpu.c +C_O_FILES = $(C_FILES:%.c=${ARCH}/%.o) + +## H_FILES = +## noinst_HEADERS = $(H_FILES) + +# S source names +S_FILES = cpu_asm.S +S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o) + +PREINSTALL_FILES = \ +$(PROJECT_INCLUDE) \ +$(H_FILES:%=$(PROJECT_INCLUDE)/%) + +$(PROJECT_INCLUDE): + $(mkinstalldirs) $@ + +$(PROJECT_INCLUDE)/%.h: %.h + $(INSTALL_DATA) $< $@ + +TMPINSTALL_FILES += \ +$(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o + +$(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o: $(ARCH)/rtems.o + $(INSTALL_DATA) $< $@ + +REL = $(ARCH)/rtems-cpu.rel + +$(REL): $(C_O_FILES) $(S_O_FILES) + $(make-rel) + +all-local: $(ARCH) $(ARCH)/rtems.o $(REL) $(TMPINSTALL_FILES) + +EXTRA_DIST = \ +cpu.c \ +cpu_asm.S \ +rtems.S + +include $(top_srcdir)/../../../../../../automake/subdirs.am +include $(top_srcdir)/../../../../../../automake/local.am diff --git a/cpukit/score/cpu/i386/Makefile.am b/cpukit/score/cpu/i386/Makefile.am new file mode 100644 index 0000000000..4e989e3488 --- /dev/null +++ b/cpukit/score/cpu/i386/Makefile.am @@ -0,0 +1,53 @@ +## +## $Id$ +## + +AUTOMAKE_OPTIONS = foreign 1.4 +ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../../../../../../automake/lib.am + +SUBDIRS = rtems + +# C source names +C_FILES = cpu.c +C_O_FILES = $(C_FILES:%.c=${ARCH}/%.o) + +H_FILES = asm.h +noinst_HEADERS = $(H_FILES) + +# S source names +S_FILES = cpu_asm.S +S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o) + +PREINSTALL_FILES = \ +$(PROJECT_INCLUDE) \ +$(H_FILES:%=$(PROJECT_INCLUDE)/%) + +$(PROJECT_INCLUDE): + $(mkinstalldirs) $@ + +$(PROJECT_INCLUDE)/%.h: %.h + $(INSTALL_DATA) $< $@ + +TMPINSTALL_FILES += \ +$(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o + +$(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o: $(ARCH)/rtems.o + $(INSTALL_DATA) $< $@ + +REL = $(ARCH)/rtems-cpu.rel + +$(REL): $(C_O_FILES) $(S_O_FILES) + $(make-rel) + +all-local: $(ARCH) $(ARCH)/rtems.o $(REL) $(TMPINSTALL_FILES) + +EXTRA_DIST = \ +cpu.c \ +cpu_asm.S \ +rtems.S + +include $(top_srcdir)/../../../../../../automake/subdirs.am +include $(top_srcdir)/../../../../../../automake/local.am diff --git a/cpukit/score/cpu/mips/Makefile.am b/cpukit/score/cpu/mips/Makefile.am new file mode 100644 index 0000000000..2909324c08 --- /dev/null +++ b/cpukit/score/cpu/mips/Makefile.am @@ -0,0 +1,53 @@ +## +## $Id$ +## + +AUTOMAKE_OPTIONS = foreign 1.4 +ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../../../../../../automake/lib.am + +SUBDIRS = rtems + +# C source names +C_FILES = cpu.c +C_O_FILES = $(C_FILES:%.c=${ARCH}/%.o) + +H_FILES = asm.h cpu_asm.h idtcpu.h idtmon.h iregdef.h +noinst_HEADERS = $(H_FILES) + +# S source names +S_FILES = cpu_asm.S +S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o) + +PREINSTALL_FILES = \ +$(PROJECT_INCLUDE) \ +$(H_FILES:%=$(PROJECT_INCLUDE)/%) + +$(PROJECT_INCLUDE): + $(mkinstalldirs) $@ + +$(PROJECT_INCLUDE)/%.h: %.h + $(INSTALL_DATA) $< $@ + +TMPINSTALL_FILES += \ +$(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o + +$(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o: $(ARCH)/rtems.o + $(INSTALL_DATA) $< $@ + +REL = $(ARCH)/rtems-cpu.rel + +$(REL): $(C_O_FILES) $(S_O_FILES) + $(make-rel) + +all-local: $(ARCH) $(ARCH)/rtems.o $(REL) $(TMPINSTALL_FILES) + +EXTRA_DIST = \ +cpu.c \ +cpu_asm.S \ +rtems.c + +include $(top_srcdir)/../../../../../../automake/subdirs.am +include $(top_srcdir)/../../../../../../automake/local.am diff --git a/cpukit/score/cpu/mips64orion/Makefile.am b/cpukit/score/cpu/mips64orion/Makefile.am new file mode 100644 index 0000000000..2909324c08 --- /dev/null +++ b/cpukit/score/cpu/mips64orion/Makefile.am @@ -0,0 +1,53 @@ +## +## $Id$ +## + +AUTOMAKE_OPTIONS = foreign 1.4 +ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../../../../../../automake/lib.am + +SUBDIRS = rtems + +# C source names +C_FILES = cpu.c +C_O_FILES = $(C_FILES:%.c=${ARCH}/%.o) + +H_FILES = asm.h cpu_asm.h idtcpu.h idtmon.h iregdef.h +noinst_HEADERS = $(H_FILES) + +# S source names +S_FILES = cpu_asm.S +S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o) + +PREINSTALL_FILES = \ +$(PROJECT_INCLUDE) \ +$(H_FILES:%=$(PROJECT_INCLUDE)/%) + +$(PROJECT_INCLUDE): + $(mkinstalldirs) $@ + +$(PROJECT_INCLUDE)/%.h: %.h + $(INSTALL_DATA) $< $@ + +TMPINSTALL_FILES += \ +$(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o + +$(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o: $(ARCH)/rtems.o + $(INSTALL_DATA) $< $@ + +REL = $(ARCH)/rtems-cpu.rel + +$(REL): $(C_O_FILES) $(S_O_FILES) + $(make-rel) + +all-local: $(ARCH) $(ARCH)/rtems.o $(REL) $(TMPINSTALL_FILES) + +EXTRA_DIST = \ +cpu.c \ +cpu_asm.S \ +rtems.c + +include $(top_srcdir)/../../../../../../automake/subdirs.am +include $(top_srcdir)/../../../../../../automake/local.am diff --git a/cpukit/score/cpu/no_cpu/Makefile.am b/cpukit/score/cpu/no_cpu/Makefile.am new file mode 100644 index 0000000000..d3ba497313 --- /dev/null +++ b/cpukit/score/cpu/no_cpu/Makefile.am @@ -0,0 +1,53 @@ +## +## $Id$ +## + +AUTOMAKE_OPTIONS = foreign 1.4 +ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../../../../../../automake/lib.am + +SUBDIRS = rtems + +# C source names +C_FILES = cpu.c cpu_asm.c +C_O_FILES = $(C_FILES:%.c=${ARCH}/%.o) + +H_FILES = asm.h +noinst_HEADERS = $(H_FILES) + +# S source names +## S_FILES = cpu_asm.S +## S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o) + +PREINSTALL_FILES = \ +$(PROJECT_INCLUDE) \ +$(H_FILES:%=$(PROJECT_INCLUDE)/%) + +$(PROJECT_INCLUDE): + $(mkinstalldirs) $@ + +$(PROJECT_INCLUDE)/%.h: %.h + $(INSTALL_DATA) $< $@ + +TMPINSTALL_FILES += \ +$(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o + +$(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o: $(ARCH)/rtems.o + $(INSTALL_DATA) $< $@ + +REL = $(ARCH)/rtems-cpu.rel + +$(REL): $(C_O_FILES) $(S_O_FILES) + $(make-rel) + +all-local: $(ARCH) $(ARCH)/rtems.o $(REL) $(TMPINSTALL_FILES) + +EXTRA_DIST = \ +cpu.c \ +cpu_asm.c \ +rtems.c + +include $(top_srcdir)/../../../../../../automake/subdirs.am +include $(top_srcdir)/../../../../../../automake/local.am -- cgit v1.2.3