diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-12-01 14:31:36 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-12-01 14:31:36 +0000 |
commit | 76561407a57223775e5c332268074b82144ff714 (patch) | |
tree | b313559eec444fbd4fdd966db48388d38d6f76cc | |
parent | Patch rtems-rc-19991123-rc-1.diff from Ralf Corsepius (diff) | |
download | rtems-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.in | 90 |
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 |