source: rtems/make/main.cfg @ 9608320

4.104.114.84.95
Last change on this file since 9608320 was 9608320, checked in by Joel Sherrill <joel.sherrill@…>, on 11/22/99 at 13:41:11

Patch rtems-rc-19991117-4.diff from Ralf Corsepius <corsepiu@…>:

.. a major configuration cleanup
... major enhancement of automake support.

... and it contains a *major* breakthough:

Automake support for libchip and libmisc *LEAF* directories.

To implement this I have used several nasty tricks

  • The basical trick is to wrap an old Makefile.in's contents into a Makefile.am and still continue to use (i.e include) the old *.cfg files.
  • Replaced each INSTALL_IF_CHANGE and INSTALL_VARIANT with make dependencies
  • Add a gnu-make ifdef AUTOMAKE to main.cfg to avoid conflicts between automake and RTEMS make rules
  • Replaced each install:: and preinstall:: rule with make dependencies
  • Replaced SUB_DIRS with SUBDIRS in all Makefile.ins (Automake convention)
  • Removed each manually added autoconf substitution which automake performs automatically.

This is not yet full automake support, because using the temporary
installation directory, preinstallation in general and building variants
are in contradiction to automake's basic working principles ...

... the new Makefile.ams work still somewhat clumsy
... nevertheless they work (quite well).

WARNING:

At first glance this patch is small, but

  • it affects the whole configuration system.
  • it opens the road to introducing automake to all Makefile.ins currently not being under automake control.

JOEL> Does this remove or add any files?

Both, all Makefile.ins below libchip and libmisc get replaced with
Makefile.ams.

  • Property mode set to 100644
File size: 1.5 KB
RevLine 
[bffb938]1#
2#  $Id$
3#
4# make/main.cfg
5#
6#   Make(1) configuration file include'd by all Makefile's
7#
8
9#
10# where things are relative to PROJECT_ROOT; shouldn't need to change,
11# but could be overridden in custom files.
12#
13
14PROJECT_RELEASE=$(PROJECT_ROOT)/$(RTEMS_BSP)
15PROJECT_BIN=$(PROJECT_RELEASE)/bin
16PROJECT_INCLUDE=$(PROJECT_RELEASE)/lib/include
17PROJECT_TOOLS = $(PROJECT_RELEASE)/build-tools
18
19#
[d6c83529]20# Target architecture; may be changed as per 'make "ARCH=debug"'
[bffb938]21# This is where the object files get put.
22#
23
[d6c83529]24ARCH=o-optimize
[bffb938]25
26VARIANT=
27
28#
29# Initial target for make(1)
30#  Once this is established we can safely include other targets
31#  within this make-include file.
32#
33
34default_target: all
35
36#
37# Default makefile name
38# May be overridden by command line macro assignment
39#
40
41MAKEFILE=Makefile
42
43#
44# Target variant names
45#
[d6c83529]46TARGET_VARIANTS = optimize debug profile
[bffb938]47
48#
[d6c83529]49# Generate list of object directories: o-optimize, o-debug, o-profile
[bffb938]50#
[d6c83529]51VARIANTS=${TARGET_VARIANTS:%=o-%}
[bffb938]52
53#
54# List of "recursion-able" targets for directory Makefiles
55#
56
[29e68b75]57RECURSE_TARGETS=all depend install \
[6693a68]58preinstall-recursive \
[29e68b75]59$(TARGET_VARIANTS)
[bffb938]60
61${ARCH}:
[817466c]62        test -d ${ARCH} || mkdir ${ARCH}
[bffb938]63
64# general purpose forcing dependency; try to use .PHONY instead
65FORCEIT:
66
67FORCE:
68
[9608320]69ifndef AUTOMAKE
[29e68b75]70distclean-generic:
71        -$(RM) Makefile .#* $(CONFIG_CLEAN_FILES)
72        -$(RM) -r $(CLOBBER_ADDITIONS)
73
74clean-generic:
75        -$(RM) a.out core mon.out gmon.out
76        -$(RM) -r $(CLEAN_ADDITIONS)
[9608320]77endif
[29e68b75]78
79.PHONY: $(RECURSE_TARGETS)
80.PHONY: clean-generic
81.PHONY: distclean-generic
Note: See TracBrowser for help on using the repository browser.