source: rtems/make/host.cfg.in @ 99eb585

Last change on this file since 99eb585 was 99eb585, checked in by Joel Sherrill <joel.sherrill@…>, on 02/25/00 at 15:03:10

Patches rtems-rc-4.5.0-1.diff from Ralf Corsepius <corsepiu@…>
that fixes numerous miscellaneous issues most related to the debug and
profile build stanzas:

Fix for the "make debug" (1) issue and an analogous issue with "make
profile" (untested).

  • Fixes to mcp750.cfg (make debug, directories) (2)
  • Updates/minor fixes for shgen (3)
  • Updates some custom/*.cfgs to use $(LINK.c) instead of $(CC)
  • Leftovers from rtems-rc-4.5.0-[0|1].diff which somehow did not make it into cvs.
  • Cleanups to the perlscripts below tools/update/
  • Some unsorted minor fixes.

Footnotes/Remarks?:

(1) Tested for all m68k, sh, sparc, unix and selected i386, ppc BSPs.

Known problems: I can't build the debug variant for the m68k/mvme162 and
m68k/mvme162lx (segmentation fault - signal 11 :)

(2) Tested by building the BSP, but I doubt the debug-variant is
functional. The flags used for the debug variant should be checked by
knowledgeable persons and probably at runtime #:o)

(3) I have updated shgen to use getopt_long (it should fall back to
getopt if not available), enhanced the options, cleaned up some minor
tweaks and added help2man support (rough automatic man-page generation).

Technical notes:

  • make debug and make profile now work similar in target Makefile.ams as they did in old autoconf-Makefile.ins using leaf.cfg. Unlike the rules in leaf.cfg these Makefile.am also recurse once on themselves in directory Makefiles before or after recursing into subdirectories, not only in leaf-directories. To implement this behavior, I renamed the former automake/local.am into automake/host.am and extended local.am to provide this recursion. I.e. host.am implements the non-self-recursive variant, while local.am now implements the self-recursive behavior. => all Makefile.ams exploiting build-variants are supposed to include local.am => all Makefile.ams not exploiting build-variants should include host.am

=> Rules of thumb:

  • Only include one of both, either local.am or host.am into a Makefile.am. -Target-Makefile.ams should include local.am -Host-Makefile.ams should include host.am (Probably, you now understand the naming)
  • There are exceptions from these rules :)
  • Now, make debug|profile|all are independent of each other. However, each of them however triggers preinstall.
  • "make install" still decends into the subdirectories but does not trigger "all|profile|debug|preinstall" in target Makefile.am anymore. Besides triggering "install"-rules in some selected Makefile.ams, it only packs $(PROJECT_ROOT) into a tarballs and unpacks it to $(prefix). => "make install" alone is not enough to install RTEMS, now use make RTEMS_BSP=<bsps> [all] [debug] [profile] make RTEMS_BSP=<bsp> install

I consider this to be a step back wrt. exploiting automake mechanisms,
and expect this to be reverted if we abandon building target variants in
favour of the standard convention of optionally overriding flags from
the command line (i.e. instead of "make debug", GNU standards favor
"make CFLAGS=<options> --prefix=<location>")

  • Property mode set to 100644
File size: 1.6 KB
Line 
1#
2#  $Id$
3#
4# OS-specific configuration
5#
6# Derived from rtems/c/make/os/*.cfg in previous RTEMS version.
7#
8
9RTEMS_HOST = @RTEMS_HOST@
10
11#
12# Stuff to clean and clobber for the OS
13#
14
15CLEAN_OS =
16CLOBBER_OS = *~ *.bak TAGS tags
17
18SHELL=@SHELL@
19ECHO=echo
20
21CAT=cat
22RM=@RM@ -f
23CP=@CP@
24MV=@MV@
25LN=@LN@
26MKDIR=mkdir
27CHMOD=chmod
28SED=sed
29
30# Global tools
31ifndef PACKHEX
32PACKHEX=$(PROJECT_BIN)/packhex
33endif
34
35ifndef INSTALL_CHANGE
36INSTALL_CHANGE=$(PROJECT_BIN)/install-if-change
37endif
38INSTALL_VARIANT=$(INSTALL_CHANGE) -V "$(LIB_VARIANT)"
39
40# FIXME: HACK for a bug in cygwin-hosted egcs which returns a mixture
41#        of '\\' and '/' as path separators.
42#        Should be removed as soon as this bug is fixed in egcs.
43GCCSED = @GCCSED@
44
45# ksh (or bash) is used by some shell scripts; ref build-tools/scripts/Makefile
46#
47#  Must have shell functions.  Some ksh's core dump mysteriously and
48#  unreliably on RTEMS shell scripts.  bash appears to be the most
49#  reliable but late model ksh's are usually OK.
50KSH=@KSH@
51
52#
53#  Rule to install a shell script with the proper shell to run it.
54#
55
56# when debugging, one may want to save the previous incarnation of the
57# installed script.  Replace the first line of this rule to do this.
58#
59#       -$(RM) $@.old
60#       -$(MV) $@ $@.old >/dev/null 2>&1
61
62# OBSOLETE: Don't use this anymore, this may be removed in future
63define make-script
64        -$(RM) $@
65        $(SED) -e '1,1s?^#!KSHELL?#!$(KSH)?' \
66               -e '1,1s?^#!SHELL?#!$(SHELL)?' < $< > $@
67        $(CHMOD) 0555 $@
68endef
69
70INSTBINFLAGS  = -m 0755
71INSTDATAFLAGS = -m 0644
72INSTLIBFLAGS  = -m 0644
73INSTDIRFLAGS  = -m 0755 -d
74INSTINCFLAGS  = -m 0644
Note: See TracBrowser for help on using the repository browser.