4.104.114.84.95
Last change
on this file since 955a9ba7 was
955a9ba7,
checked in by Joel Sherrill <joel.sherrill@…>, on 12/01/99 at 15:05:26
|
Patch rtems-rc-19991123-rc-2.diff from Ralf Corsepius
<corsepiu@…> 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.
|
-
Property mode set to
100644
|
File size:
1.0 KB
|
Line | |
---|
1 | ## |
---|
2 | ## $Id$ |
---|
3 | ## |
---|
4 | |
---|
5 | AUTOMAKE_OPTIONS = foreign 1.4 |
---|
6 | ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal |
---|
7 | |
---|
8 | include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg |
---|
9 | include $(top_srcdir)/../../../../../../automake/lib.am |
---|
10 | |
---|
11 | SUBDIRS = rtems |
---|
12 | |
---|
13 | # C source names |
---|
14 | C_FILES = cpu.c |
---|
15 | C_O_FILES = $(C_FILES:%.c=${ARCH}/%.o) |
---|
16 | |
---|
17 | ## H_FILES = |
---|
18 | ## noinst_HEADERS = $(H_FILES) |
---|
19 | |
---|
20 | # S source names |
---|
21 | S_FILES = cpu_asm.S |
---|
22 | S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o) |
---|
23 | |
---|
24 | PREINSTALL_FILES = \ |
---|
25 | $(PROJECT_INCLUDE) \ |
---|
26 | $(H_FILES:%=$(PROJECT_INCLUDE)/%) |
---|
27 | |
---|
28 | $(PROJECT_INCLUDE): |
---|
29 | $(mkinstalldirs) $@ |
---|
30 | |
---|
31 | $(PROJECT_INCLUDE)/%.h: %.h |
---|
32 | $(INSTALL_DATA) $< $@ |
---|
33 | |
---|
34 | TMPINSTALL_FILES += \ |
---|
35 | $(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o |
---|
36 | |
---|
37 | $(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o: $(ARCH)/rtems.o |
---|
38 | $(INSTALL_DATA) $< $@ |
---|
39 | |
---|
40 | REL = $(ARCH)/rtems-cpu.rel |
---|
41 | |
---|
42 | $(REL): $(C_O_FILES) $(S_O_FILES) |
---|
43 | $(make-rel) |
---|
44 | |
---|
45 | all-local: $(ARCH) $(ARCH)/rtems.o $(REL) $(TMPINSTALL_FILES) |
---|
46 | |
---|
47 | EXTRA_DIST = \ |
---|
48 | cpu.c \ |
---|
49 | cpu_asm.S \ |
---|
50 | rtems.S |
---|
51 | |
---|
52 | include $(top_srcdir)/../../../../../../automake/subdirs.am |
---|
53 | include $(top_srcdir)/../../../../../../automake/local.am |
---|
Note: See
TracBrowser
for help on using the repository browser.