Files
rtems/Makefile.in
Joel Sherrill d8ff79366b Towards automake XI patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
This patch is the most scary of all proposals I've been mailing to you
    this week until now.

    It consists of 3 parts:
        1. a patch
        2. a perl script (acpolish)
        3. a shell script wrapper to invoke the perl-script.

    The perl-script reads in each Makefile.in and modifies them
    ("polishes/beautifies" them :-).

    These modifications are not easy to describe:

    Basically, it hard-codes some automake Makefile-variables and rules into
    RTEMS autoconf-Makefile.ins (Note: autoconf vs. automake!!) and converts
    some settings/variables to configure scripts' requirements (Yes,
    plural).

    E.g. it adds the automake standard variables $top_builddir and $subdir,
    adds dependency rules for automatic re-generation of Makefiles from
    Makefile.in, adds support variables for relative paths to multiple
    configure scripts etc.


    The patch is a one-line patch to enable the support of the new features
    added by acpolish.

    The shell script is a wrapper which pokes around inside of the source
    tree for Makefile.ins and invokes acpolish on all autoconf-Makefile.ins.

    acpolish is designed to be able to run several times on the same
    Makefile.in and may once become a more general tool to convert RTEMS
    Makefile.in to automake. Therefore, I'd like to keep it inside of source
    tree. (e.g. as contrib/acpolish or c/update-tools/acpolish). However, it
    doesn't make sense to export it outside of RTEMS.


To apply this:

    cd <source-tree>
    patch -p1 -E < <path-to-patch>/rtems-rc-19990318-1.diff
    tar xzvf <path-to>/rtems-rc-polish.tar.gz
    ./rtems-polish.sh
    ./autogen

    Note: The path contrib/acpolish is hard-coded into rtems-polish.sh, if
    you decide to put it in an alternative place, please modify
    rtems-polish.sh to reflect this change.

    Later:
    cvs rm make/rtems.cfg (It isn't used anymore)
    cvs add contrib
    cvs add contrib/acpolish
    cvs commit

    I've tested this intensively, but naturally I can't exclude bugs.

    Ralf.

    PS.: Most probably, this is the last "Towards automake" patch. The next
    one probably will be a real automake patch.
1999-03-19 22:27:02 +00:00

82 lines
1.9 KiB
Makefile

#
# top level directory for RTEMS build tree
#
# Modified by Jiri to implement autoconf and cygnus one-tree build
#
# $Id$
#
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = .
INSTALL = @INSTALL@
RTEMS_ROOT = $(top_srcdir)/@RTEMS_TOPdir@
PROJECT_ROOT = @PROJECT_ROOT@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
libdir = @libdir@
includedir = @includedir@
target = @target@
manext = 1
mandir = @mandir@/man$(manext)
program_prefix = @program_prefix@
export bindir
VPATH=@srcdir@
ifeq ($(RTEMS_BSP),)
RTEMS_BSP = @RTEMS_BSP_LIST@
endif
include $(RTEMS_ROOT)/make/main.cfg
MTARGETS = pre_install_src all install $(TARGET_VARIANTS) $(TARGET_VARIANTS:%=%_all) \
$(TARGET_VARIANTS:%=%_install) $(TARGET_VARIANTS:%=%_tests) \
clean_wrapup distclean clean_dirs clean_tools tests clean depend
EXIT_CMD = exit 1
# Don't pass flags from previous make - especially NOT CFLAGS
# NOTE: Previous versions overrode MAKEFLAGS, but this also disables
# a lot of useful features
# override MAKEFLAGS=
$(MTARGETS):
BASEDIR=`pwd`; \
for bsp in $(RTEMS_BSP) xxx; \
do if [ $$bsp != xxx ] ; then \
cd $$BASEDIR; \
cmd="cd c; $(MAKE) RTEMS_BSP=$$bsp $(FLAGS_TO_PASS) \
$@" ; \
eval $$cmd || $(EXIT_CMD); \
fi; done;
## Configuration stuff
ACLOCAL = aclocal -I aclocal
AUTOCONF = autoconf
ACLOCAL_FILES := $(wildcard $(srcdir)/aclocal/*.m4)
ACLOCAL_M4 = aclocal.m4
$(ACLOCAL_M4): configure.in $(ACLOCAL_FILES)
-cd $(RTEMS_ROOT) && $(ACLOCAL)
config.status: $(RTEMS_ROOT)/configure
$(SHELL) ./config.status --recheck
$(RTEMS_ROOT)/configure: $(RTEMS_ROOT)/configure.in $(ACLOCAL_M4)
-cd $(RTEMS_ROOT) && $(AUTOCONF)
.PRECIOUS: $(ACLOCAL_M4) configure Makefile config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status