summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/mips
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-12-01 15:05:26 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-12-01 15:05:26 +0000
commit955a9ba74c6f0e5ad3787d149c56bc90c22ee045 (patch)
treed2ac7086a3620c021e8da794e69e1cf5bbd00795 /cpukit/score/cpu/mips
parent Patch rtems-rc-19991123-rc-2.diff from Ralf Corsepius (diff)
downloadrtems-955a9ba74c6f0e5ad3787d149c56bc90c22ee045.tar.bz2
Patch rtems-rc-19991123-rc-2.diff from Ralf Corsepius
<corsepiu@faw.uni-ulm.de> which implements automake support for some score/cpu/<RTEMS_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.
Diffstat (limited to 'cpukit/score/cpu/mips')
-rw-r--r--cpukit/score/cpu/mips/Makefile.am53
1 files changed, 53 insertions, 0 deletions
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