Commit Graph

8 Commits

Author SHA1 Message Date
Chris Johns
2afb22b7e1 Remove make preinstall
A speciality of the RTEMS build system was the make preinstall step.  It
copied header files from arbitrary locations into the build tree.  The
header files were included via the -Bsome/build/tree/path GCC command
line option.

This has at least seven problems:

* The make preinstall step itself needs time and disk space.

* Errors in header files show up in the build tree copy.  This makes it
  hard for editors to open the right file to fix the error.

* There is no clear relationship between source and build tree header
  files.  This makes an audit of the build process difficult.

* The visibility of all header files in the build tree makes it
  difficult to enforce API barriers.  For example it is discouraged to
  use BSP-specifics in the cpukit.

* An introduction of a new build system is difficult.

* Include paths specified by the -B option are system headers.  This
  may suppress warnings.

* The parallel build had sporadic failures on some hosts.

This patch removes the make preinstall step.   All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc.  Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.

The new cpukit include directories are:

* cpukit/include

* cpukit/score/cpu/@RTEMS_CPU@/include

* cpukit/libnetworking

The new BSP include directories are:

* bsps/include

* bsps/@RTEMS_CPU@/include

* bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include

There are build tree include directories for generated files.

The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.

The "bootstrap -p" option was removed.  The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.

Update #3254.
2018-01-25 08:45:26 +01:00
Joel Sherrill
9b4422a251 Remove All CVS Id Strings Possible Using a Script
Script does what is expected and tries to do it as
smartly as possible.

+ remove occurrences of two blank comment lines
  next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
  contain CVS Ids
+ If the processing left a blank line at the top of
  a file, it was removed.
2012-05-11 08:44:13 -05:00
Ralf Corsepius
f654f6910d Remove depend-recursive: 2006-01-12 03:50:10 +00:00
Joel Sherrill
df49c60c96 Merged from 4.5.0-beta3a 2000-06-12 15:00:15 +00:00
Joel Sherrill
29e68b7584 Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
This patch is an addition to "The big-patch"

  CHANGES:
  * FIX: c/Makefile.am: bogus comment which changed the behavior of
    c/Makefile.am removed
  * FIX: make/custom/ts_i386ex.cfg did not set HAS_NETWORKING correctly
    (Me thinks it might have been me who added this bogus setting :-).

  * NEW: removing make targets get, protos, debug_install, profile_install

  * NEW: replacing clobber with distclean
  * NEW: Reimplement distclean and clean as reverse depth first make
    targets (adaptation to automake's behavior)
  * NEW: removing RCS_CLEAN from make distclean (tools/build/rcs_clean is
    still in - remove it?)
  * NEW: "$(RM) Makefile" added to make distclean (adaptation to
    automake's behavior)
  * NEW: "$(RM) config.cache config.log" to CLOBBER_ADDITIONS in
    [lib|exec|tests]/Makefile.in (adaptation to automake's behavior)
  * NEW: "$(CLEAN_PROTOS)" removed (Not used anywhere)
  * NEW: binpatch.c moved from i386 bsp tools to tools/build (AFAIS,
    binpatch is not specific to the pc386 BSP at all)
  * NEW: AC_EXEEXT added to all configure scripts which contain AC_PROG_CC
    (Cygwin support)

  * NEW/Experimental: An experimental implementation of temporary
    installation tree support in libbsp/i386/pc386/tools/Makefile.am, based
    on dependency tracking with make, instead of applying INSTALL_CHANGE.


  REMARK:
  * This patch is small in size, but changes the behavior of "make
    clean|distclean|clobber" basically.
  * This patch does not alter building/compiling RTEMS, ie. there should
    be no need to rerun all "make all" building tests.

  KNOWN BUGS:
  * make RTEMS_BSP="..." distclean in c/ runs "make distclean" in BSPs
    subdirectories passed through RTEMS_BSP and in "c/." only, but does not
    descend into other BSP subdirectories previously configured with
    different settings of make RTEMS_BSP="...".
    => Workaround: always use the same setting of RTEMS_BSP when working
    inside the build-tree.

  * "make [distclean|clean]" do not clean subdirectories, which have been
    configured at configuration time, but  which are not used due to
    make-time configuration (e.g. macros/networking/rdgb subdirectories).
    This will problem will vanish by itself when migrating from make-time to
    configuration-time configuration

  APPLYING THE PATCH

      mv c/src/lib/libbsp/i386/pc386/tools/binpatch.c tools/build
      patch -p1 < rtems-rc-19990709-2.diff
      autogen
1999-07-26 21:26:44 +00:00
Joel Sherrill
ecb2755e06 Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de> to address this:
> * RTEMS's  'make depend' isn't a standard automake make target and is not
> supported in automake supported subdirectories.
1999-04-19 13:44:03 +00:00
Joel Sherrill
8cdb582b49 Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
This patch addresses a few minor issues and contains a few (minor)
  preparations for automake.

  * configure.in: Fix for handing c/src/tests subdirectory handling (FIX)
  * aclocal/rtems-top.m4:
    + Add TARGET_SUBDIR and --with-target-subdir (preparation of future
      enhancements for cross-compiling)
    + Activate RTEMS_ROOT handling (automake preparation)
  * automake/*.am: replace comments "#" with "##" so that comments won't
    get included into Makefile.in's anymore
  * c/update-tools/* automake support (NEW)
  * ./autogen update/enhancement (cf. ./autogen for details)

  After applying this patch please run:

    ./autogen
    cvs add c/update-tools/configure.in
    cvs add c/update-tools/Makefile.am
    cvs add c/update-tools/aclocal.m4
1999-04-12 15:41:33 +00:00
Joel Sherrill
9b8baa128b Automake II patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. Email
description follows:

Description:

    * automake for *all* tool subdirectories (Makefile.am, configure.in etc.)
    * autogen now also considers CONFIG_HEADER (generates stamp-h.ins and
      config.h.ins)
    * c/src/tests/tools/generic/difftest and
      c/src/tests/tools/generic/sorttimes generated by configure scripts
    * c/update-tools/ampolish, beautifier for Makefile.ams, similar to
      acpolish
    * rtems-polish.sh added to c/update-tools/ + ampolish support
    * New subdirectory ./automake, contains automake -Makefile fragments to
      support RTEMS make "debug, debug_install, profile, profile_install" for
      native Makefile.ams (== ignore these make targets).
    * aclocal/rtems-top.m4's RTEMS_TOP now reads the automake makefile
      variable VERSION from RTEMS ./VERSION file.
    * ./configure.in uses the macros from aclocal + support for the tools'
      configure scripts

  Remarks:
    * To run rtems-polish.sh, "cd <rtems-source-tree>;
      ./c/update-tools/rtems-polish.sh"
    * AFAIS, now all native subdirectories are converted to automake (Please
      drop me a note, if I forgot something).
    * Unless you notice something fatal, IMO the time has come for a public
      try (== snapshot). I do not intend to send more automake related patches
      within, say 2 weeks, to give these patches time to settle and to give me
      some time to think on how to continue.
    * The patch assumes installation to the new main installation directory
      [$(prefix)].
1999-03-23 18:02:17 +00:00