summaryrefslogtreecommitdiffstats
path: root/c/src/exec/score/cpu/no_cpu
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 /c/src/exec/score/cpu/no_cpu
parent1972b1e7609ec9da3ba2e83d0048ba41940cc282 (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 'c/src/exec/score/cpu/no_cpu')
-rw-r--r--c/src/exec/score/cpu/no_cpu/Makefile.am53
-rw-r--r--c/src/exec/score/cpu/no_cpu/Makefile.in25
-rw-r--r--c/src/exec/score/cpu/no_cpu/rtems/Makefile.am10
-rw-r--r--c/src/exec/score/cpu/no_cpu/rtems/Makefile.in25
-rw-r--r--c/src/exec/score/cpu/no_cpu/rtems/score/Makefile.am26
-rw-r--r--c/src/exec/score/cpu/no_cpu/rtems/score/Makefile.in75
6 files changed, 89 insertions, 125 deletions
diff --git a/c/src/exec/score/cpu/no_cpu/Makefile.am b/c/src/exec/score/cpu/no_cpu/Makefile.am
new file mode 100644
index 0000000000..d3ba497313
--- /dev/null
+++ b/c/src/exec/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
diff --git a/c/src/exec/score/cpu/no_cpu/Makefile.in b/c/src/exec/score/cpu/no_cpu/Makefile.in
deleted file mode 100644
index 7a9a785b50..0000000000
--- a/c/src/exec/score/cpu/no_cpu/Makefile.in
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# $Id$
-#
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ..
-subdir = no_cpu
-
-RTEMS_ROOT = @RTEMS_ROOT@
-PROJECT_ROOT = @PROJECT_ROOT@
-
-VPATH = @srcdir@
-
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
-include $(RTEMS_ROOT)/make/directory.cfg
-
-INSTALL_CHANGE = @INSTALL_CHANGE@
-
-SUBDIRS = rtems wrap
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/c/src/exec/score/cpu/no_cpu/rtems/Makefile.am b/c/src/exec/score/cpu/no_cpu/rtems/Makefile.am
new file mode 100644
index 0000000000..900930a502
--- /dev/null
+++ b/c/src/exec/score/cpu/no_cpu/rtems/Makefile.am
@@ -0,0 +1,10 @@
+##
+## $Id$
+##
+
+AUTOMAKE_OPTIONS = foreign 1.4
+
+SUBDIRS = score
+
+include $(top_srcdir)/../../../../../../automake/subdirs.am
+include $(top_srcdir)/../../../../../../automake/local.am
diff --git a/c/src/exec/score/cpu/no_cpu/rtems/Makefile.in b/c/src/exec/score/cpu/no_cpu/rtems/Makefile.in
deleted file mode 100644
index aff4d23703..0000000000
--- a/c/src/exec/score/cpu/no_cpu/rtems/Makefile.in
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# $Id$
-#
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ../..
-subdir = no_cpu/rtems
-
-RTEMS_ROOT = @RTEMS_ROOT@
-PROJECT_ROOT = @PROJECT_ROOT@
-
-VPATH = @srcdir@
-
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
-include $(RTEMS_ROOT)/make/directory.cfg
-
-INSTALL_CHANGE = @INSTALL_CHANGE@
-
-SUBDIRS = score
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/c/src/exec/score/cpu/no_cpu/rtems/score/Makefile.am b/c/src/exec/score/cpu/no_cpu/rtems/score/Makefile.am
new file mode 100644
index 0000000000..61e7148453
--- /dev/null
+++ b/c/src/exec/score/cpu/no_cpu/rtems/score/Makefile.am
@@ -0,0 +1,26 @@
+##
+## $Id$
+##
+
+AUTOMAKE_OPTIONS = foreign 1.4
+
+H_FILES = cpu.h no_cpu.h cpu_asm.h no_cputypes.h
+noinst_HEADERS = $(H_FILES)
+
+#
+# (OPTIONAL) Add local stuff here using +=
+#
+
+PREINSTALL_FILES = \
+$(PROJECT_INCLUDE)/rtems/score \
+$(H_FILES:%.h=$(PROJECT_INCLUDE)/rtems/score/%.h)
+
+$(PROJECT_INCLUDE)/rtems/score:
+ $(mkinstalldirs) $@
+
+$(PROJECT_INCLUDE)/rtems/score/%.h: %.h
+ $(INSTALL_DATA) $< $@
+
+all-local: $(PREINSTALL_FILES)
+
+include $(top_srcdir)/../../../../../../automake/local.am
diff --git a/c/src/exec/score/cpu/no_cpu/rtems/score/Makefile.in b/c/src/exec/score/cpu/no_cpu/rtems/score/Makefile.in
deleted file mode 100644
index 86ce179e40..0000000000
--- a/c/src/exec/score/cpu/no_cpu/rtems/score/Makefile.in
+++ /dev/null
@@ -1,75 +0,0 @@
-#
-# $Id$
-#
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ../../..
-subdir = no_cpu/rtems/score
-
-RTEMS_ROOT = @RTEMS_ROOT@
-PROJECT_ROOT = @PROJECT_ROOT@
-
-VPATH = @srcdir@
-
-# C source names, if any, go here -- minus the .c
-C_PIECES =
-C_FILES = $(C_PIECES:%=%.c)
-C_O_FILES = $(C_PIECES:%=${ARCH}/%.o)
-
-H_PIECES = cpu.h no_cpu.h no_cputypes.h
-H_FILES = $(H_PIECES:%=$(srcdir)/%)
-
-# Assembly source names, if any, go here -- minus the .S
-S_PIECES =
-S_FILES = $(S_PIECES:%=%.S)
-S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o)
-
-SRCS = $(C_FILES) $(CC_FILES) $(H_FILES) $(S_FILES)
-OBJS = $(C_O_FILES) $(CC_O_FILES) $(S_O_FILES)
-
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
-include $(RTEMS_ROOT)/make/leaf.cfg
-
-INSTALL_CHANGE = @INSTALL_CHANGE@
-mkinstalldirs = $(SHELL) $(top_srcdir)/@RTEMS_TOPdir@/mkinstalldirs
-
-INSTALLDIRS = $(PROJECT_INCLUDE)/rtems/score
-
-$(INSTALLDIRS):
- @$(mkinstalldirs) $(INSTALLDIRS)
-
-#
-# (OPTIONAL) Add local stuff here using +=
-#
-
-DEFINES +=
-CPPFLAGS +=
-CFLAGS +=
-
-LD_PATHS +=
-LD_LIBS +=
-LDFLAGS +=
-
-#
-# Add your list of files to delete here. The config files
-# already know how to delete some stuff, so you may want
-# to just run 'make clean' first to see what gets missed.
-# 'make clobber' already includes 'make clean'
-#
-
-CLEAN_ADDITIONS +=
-CLOBBER_ADDITIONS += $(BUILT_SOURCES)
-
-# Install the program(s), appending _g or _p as appropriate.
-# for include files, just use $(INSTALL_CHANGE)
-
-all: preinstall
-
-preinstall: $(INSTALLDIRS) $(H_FILES)
- @$(INSTALL_CHANGE) -m 644 $(H_FILES) $(PROJECT_INCLUDE)/rtems/score
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status