forked from Imagelibrary/rtems
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.
82 lines
1.9 KiB
Makefile
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
|