source: rtems/cpukit/score/cpu/mips64orion/Makefile.am @ 955a9ba7

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.1 KB
Line 
1##
2## $Id$
3##
4
5AUTOMAKE_OPTIONS = foreign 1.4
6ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal
7
8include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
9include $(top_srcdir)/../../../../../../automake/lib.am
10
11SUBDIRS = rtems
12
13# C source names
14C_FILES = cpu.c
15C_O_FILES = $(C_FILES:%.c=${ARCH}/%.o)
16
17H_FILES = asm.h cpu_asm.h idtcpu.h idtmon.h iregdef.h
18noinst_HEADERS = $(H_FILES)
19
20# S source names
21S_FILES = cpu_asm.S
22S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o)
23
24PREINSTALL_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
34TMPINSTALL_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
40REL = $(ARCH)/rtems-cpu.rel
41
42$(REL): $(C_O_FILES) $(S_O_FILES)
43        $(make-rel)
44
45all-local: $(ARCH) $(ARCH)/rtems.o $(REL) $(TMPINSTALL_FILES)
46
47EXTRA_DIST = \
48cpu.c \
49cpu_asm.S \
50rtems.c
51
52include $(top_srcdir)/../../../../../../automake/subdirs.am
53include $(top_srcdir)/../../../../../../automake/local.am
Note: See TracBrowser for help on using the repository browser.