Commit Graph

8 Commits

Author SHA1 Message Date
Joel Sherrill
11cfb6f7f6 Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
1. Rtems contains some perl scripts that use hard-coded paths to
      /usr/bin/perl or /usr/local/bin/perl I have already fixed these
      problems by adding some checks to configure.in.   While doing this,
      I also cleaned up some more autoconf related problems for generating
      shell scripts.  This patch might seem a bit scary to you, but I am
      quite confident it won't break something (I've been testing it for
      almost a week now, however it might introduce typos for a limited
      number configurations I don't have access to - But it shouldn't be
      a problem for you to test them :-).

   I expect to get this finished tonight, hence you will very likely
   have the patch when you get up tomorrow.

   Changes:

   * Check for PERL and disable all PERL scripts if perl wasn't found.
   * Generate all KSHELL-scripts with autoconf instead of make-script
   * Automatic dependency handling for autoconf generated KSHELL or PERL
     scripts (make/rtems.cfg)

   Notes:
   * this patch contains new files and deletes some other files.
   * The patch is relative to rtems-4.0.0-beta4 with my previous
     rtems-rc-981014-1.diff patch applied.

   Testing:
      I tested it with sh-rtems and posix under linux. Now all targets
      which are touched by this patch and which are not used while building
      for sh-rtems and posix still need to be tested. AFAIS, only the
      sparc/erc32 BSP should be affected by this criterion. And if you
      like to, you should also consider testing it on a Cygwin32 and a
      Solaris host for one arbitrary BSP.
1998-10-14 20:19:30 +00:00
Joel Sherrill
06fa582130 Patches from Ralf Corsepius <corsepiu@faw.uni-ulm.de> and myself to
make solaris target buildable.

    > 1.  The ipc check fails since solaris does not define union semun.
    > The unix port code actually defines this type itself on solaris.  Doing
    > the same thing lets it get configured.  Then...

    > 2.  It looks like BSDINSTALL is not defined properly.

    BSDINSTALL is defined in make/host.cfg.in as
    BSDINSTALL=@INSTALL@

    @INSTALL@ is generated by autoconf's standard macro AC_PROG_INSTALL, which
    is widely used in almost any autoconf/automake configured package. In case
    there is really something wrong with it, then it must be considered a bug
    in autoconf.

    I can see a doubious fragment in AC_PROG_INSTALL, which is used when no
    appropriate bsd-install is found.

Finally Ralf saw a problem with the find on solaris which I also saw and
fixed.
1998-08-19 12:56:20 +00:00
Joel Sherrill
f95d2b53f2 Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. Comments:
* Added support for bsd "install" ($(BSDINSTALL)) to host.cfg.in, i.e.
    the standard "install" program that most packages (including automake)
    use. In Makefiles outside of rtems, "install" normally is referenced by
    $(INSTALL), but rtems already uses $(INSTALL) for install-if-change,
    hence I used $(BSDINSTALL) instead to keep up backward compatibility.

    * Removed references to @GREP@ etc. from host.cfg.in, as configure.in
    doesn't check for them (Minor cleanup).

    * Added installation flags INST*FLAGS to host.cfg.in, which should
    replace -m XXXX flags for installation calls.

    *Changes to gcc.cfg to enable it to build host programs from multiple
    sources files.
    Should not disturb existing sources, but neccessary.

    * There was a not-so-minor bug in the configuration files: "make
    install" and "make debug_install" don't work in all subdirectories!! I
    tried to fix this by adding "install" to MTARGETS in main.cfg, which
    seems to solve most of the problems. But there still seem to be rare (?)
    cases where "make debug_install" still seems to have problems.

    * Changes to many host related tool-Makefiles to demonstrate the
    abilities of INST*FLAGS, BSDINSTALL and the new rules in gcc.cfg.
    ..of cause ... but BSDINSTALL is THE standard method to install files
    in most program packages besides rtems. This part of the patch fixes
    some minor protection setting problems, but doesn't support
    TARGET_VARIANTS

    NOTE:
    I hope you will like the BSDINSTALL, INST*FLAGS stuff. It is a step to
    get rid of "install-if-change" and to rely on a more standard
    installation procedure. If you don't like BSDINSTALL, removing it from
    the patch isn't  difficult-  just grep for BSDINSTALL and replace
    BSDINSTALL with INSTALL or MKDIR.


    FINALLY:
    I still have another patch pending (well, not a complete patch yet, it's
    a partial patch to demonstrate the principle), which adds automatic
    rebuilding of files generated by autoconf/configure. At the moment I
    don't dare to submit it, because integrating this patch would require to
    modify all Makefile.ins because we'd need to add a new "include " line
    to each Makefile.in.
1998-07-17 15:49:12 +00:00
Joel Sherrill
5c3511e5cf Big patch form Ralf Corsepius described in this email:
Here is the result of my nightly work to get RTEMS_ROOT=$srcdir working
  with different shells and relative/absolute paths.

  What I did is relatively simple in principle:
  Instead of setting RTEMS_ROOT in configure.in and then let configure
  substitute @RTEMS_ROOT@ inside the Makefiles, I now let each Makefile
  set RTEMS_ROOT from each Makefile's @top_srcdir@ value.

  The difference is subtile, but with enormous side effects:
  - If RTEMS_ROOT is set in configure, then the same single value will be
  propagated to all Makefiles. This breaks using relative paths, as the
  relative path to the root of the source tree is used inside of all
  subdirectory Makefiles.
  - Now each Makefile.in sets RTEMS_ROOT = @top_srcdir@.  top_srcdir  is
  computed individually by configure for each single Makefile.in, hereby
  receiving the correct value, no matter if relative or absolute paths are
  used.

  To get this working, I needed to remove setting RTEMS_ROOT from
  target.cfg.in, because this overrides the value of RTEMS_ROOT from each
  individual Makefile.


  Furthermore, I removed RTEMS_CUSTOM from the Makefiles and replaced all
  "include $(RTEMS_CUSTOM)" directives with"include
  $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP)". Perhaps you don't like this,
  but I think, to have one variable less is clearer and easier to
  understand than having several variables refering to the next one.


  I enclose a small patch to this mail, which
  - fixes the config.h problem (to finally clearify misunderstands)
  - removes assignment/subsitution of RTEMS_ROOT from configure.in
  - contains a workaround for the application Makefile's RTEMS_ROOT
  problem (reported by Eric)
  - removes some unused lines from the toplevel Makefile.in
  - removes assignment of RTEMS_ROOT from make/target.cfg.in
1998-01-30 21:49:51 +00:00
Joel Sherrill
6f9c75c322 Ralf Corsepius reported a number of missing CVS Id's:
> RTEMS is under CVS control and has been since rtems 3.1.16 which was
  > around May 1995.  So I just to add the $Id$.  If you notice other files
  > with missing $Id$'s let me know.  I try to keep w\up with it.

  Now that you have asked -- I'll attach a list of files lacking an RCS-Id to
  this mail. This list has been generated by a little sh-script I'll also
  enclose.
1998-01-16 16:56:48 +00:00
Joel Sherrill
674c900f24 Modified a lot of files to take a first cut at supporting building from
any directory in the build tree.  The only variable which must be set
before the command "gmake" is invoked is RTEMS_BSP (e.g. RTEMS_BSP=erc32).
1997-12-10 16:58:00 +00:00
Joel Sherrill
254b445071 This set of changes is the build of what was required to convert to
GNU autoconf.  This is the first large step in allowing an RTEMS
user to perform a one-tree build (per crossgcc FAQ) including RTEMS
in the build process.  With this change RTEMS is configured in
built in the same style as the GNU tools, yet retains the basic
structure of its traditional Makefiles (ala Tony Bennett).
Jiri Gaisler (jgais@wd.estec.esa.nl) deserves (and received)
a big thank you for doing this.

There are still issues to be resolved but as of this commit, all target
which can be built on a linux host have been using a modified version
of the source Jiri submitted.  This source was merged and most targets
built in the tree before this commit.

There are some issues which remain to be resolved but they are primarily
related to host OS dependencies, script issues, the use of gawk
for hack_specs, and the dependence on gcc snapshots.  These will
be resolved.
1997-04-01 23:07:52 +00:00
Joel Sherrill
ac7d5ef06a Initial revision 1995-05-11 17:39:37 +00:00