summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-12-01 14:31:36 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-12-01 14:31:36 +0000
commit76561407a57223775e5c332268074b82144ff714 (patch)
treeb313559eec444fbd4fdd966db48388d38d6f76cc
parentPatch rtems-rc-19991123-rc-1.diff from Ralf Corsepius (diff)
downloadrtems-76561407a57223775e5c332268074b82144ff714.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.
-rw-r--r--c/src/exec/score/cpu/a29k/wrap/Makefile.in90
1 files changed, 0 insertions, 90 deletions
diff --git a/c/src/exec/score/cpu/a29k/wrap/Makefile.in b/c/src/exec/score/cpu/a29k/wrap/Makefile.in
deleted file mode 100644
index dcdfd1d500..0000000000
--- a/c/src/exec/score/cpu/a29k/wrap/Makefile.in
+++ /dev/null
@@ -1,90 +0,0 @@
-#
-# $Id$
-#
-# *** NOTE *** This Makefile violates RTEMS Makefile standards.
-# This Makefile picks up sources from outside this directory
-# and installs relocatible objects outside of this directory.
-# This behavior is a work-around for RTEMS Makefile's missing
-# ability to compile inside of directories containing subdirectories.
-# This directory will disapear once automake will be introduced.
-#
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ../..
-subdir = a29k/wrap
-
-RTEMS_ROOT = @RTEMS_ROOT@
-PROJECT_ROOT = @PROJECT_ROOT@
-
-VPATH = @srcdir@/..
-
-RELS = ../$(ARCH)/rtems-cpu.rel
-
-# C source names, if any, go here -- minus the .c
-C_PIECES = cpu
-C_FILES = $(C_PIECES:%=%.c)
-C_O_FILES = $(C_PIECES:%=${ARCH}/%.o)
-
-H_PIECES = amd.ah asm.h cpu_asm.h pswmacro.ah register.ah
-H_FILES = $(H_PIECES:%=$(srcdir)/../%)
-
-# Assembly source names, if any, go here -- minus the .S
-S_PIECES = cpu_asm sig
-S_FILES = $(S_PIECES:%=%.S)
-S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o)
-
-SRCS = $(C_FILES) $(CC_FILES) $(H_FILES) $(S_FILES) $(EXTERNAL_H_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)
-
-$(INSTALLDIRS):
- @$(mkinstalldirs) $(INSTALLDIRS)
-
-#
-# (OPTIONAL) Add local stuff here using +=
-#
-
-DEFINES +=
-CPPFLAGS += -I$(srcdir)/..
-CFLAGS += $(CFLAGS_OS_V)
-
-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 += ../$(ARCH)
-CLOBBER_ADDITIONS +=
-
-all: ${ARCH} $(SRCS) preinstall $(OBJS) $(ARCH)/rtems.o $(RELS)
- $(INSTALL_VARIANT) -m 644 $(ARCH)/rtems.o $(PROJECT_RELEASE)/lib
-
-../$(ARCH)/rtems-cpu.rel: $(OBJS)
- test -d ../$(ARCH) || mkdir ../$(ARCH)
- $(make-rel)
-
-# Install the program(s), appending _g or _p as appropriate.
-# for include files, just use $(INSTALL_CHANGE)
-install: all
-
-preinstall: ${ARCH}
- @$(INSTALL_CHANGE) -m 644 $(H_FILES) $(PROJECT_INCLUDE)
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status