summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-03-19 22:27:02 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-03-19 22:27:02 +0000
commitd8ff79366bb0f4646436e4c298e4f5505a51c007 (patch)
tree7b69d0627eca83ab40473a31ad3568ea0bbfb996 /tools
parentTowards automake X patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>: (diff)
downloadrtems-d8ff79366bb0f4646436e4c298e4f5505a51c007.tar.bz2
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.
Diffstat (limited to 'tools')
-rw-r--r--tools/build/Makefile.in15
-rw-r--r--tools/build/os/Makefile.in15
-rw-r--r--tools/build/os/msdos/Makefile.in14
-rw-r--r--tools/build/scripts/Makefile.in16
-rw-r--r--tools/build/src/Makefile.in17
-rw-r--r--tools/cpu/Makefile.in15
-rw-r--r--tools/cpu/generic/Makefile.in16
-rw-r--r--tools/cpu/sh/Makefile.in15
-rw-r--r--tools/cpu/unix/Makefile.in15
-rw-r--r--tools/update/Makefile.in15
-rwxr-xr-xtools/update/acpolish159
11 files changed, 278 insertions, 34 deletions
diff --git a/tools/build/Makefile.in b/tools/build/Makefile.in
index e58758025b..e72c35c79e 100644
--- a/tools/build/Makefile.in
+++ b/tools/build/Makefile.in
@@ -4,13 +4,22 @@
@SET_MAKE@
srcdir = @srcdir@
-VPATH = @srcdir@
-RTEMS_ROOT = @top_srcdir@
-PROJECT_ROOT = @PROJECT_ROOT@
+top_srcdir = @top_srcdir@
+top_builddir = ../..
+subdir = c/build-tools
INSTALL = @INSTALL@
+RTEMS_ROOT = $(top_srcdir)/@RTEMS_TOPdir@
+PROJECT_ROOT = @PROJECT_ROOT@
+
+VPATH = @srcdir@
+
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
include $(RTEMS_ROOT)/make/directory.cfg
SUB_DIRS=os scripts src
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/tools/build/os/Makefile.in b/tools/build/os/Makefile.in
index 884a8c9b9e..86e2497722 100644
--- a/tools/build/os/Makefile.in
+++ b/tools/build/os/Makefile.in
@@ -4,13 +4,22 @@
@SET_MAKE@
srcdir = @srcdir@
-VPATH = @srcdir@
-RTEMS_ROOT = @top_srcdir@
-PROJECT_ROOT = @PROJECT_ROOT@
+top_srcdir = @top_srcdir@
+top_builddir = ../../..
+subdir = c/build-tools/os
INSTALL = @INSTALL@
+RTEMS_ROOT = $(top_srcdir)/@RTEMS_TOPdir@
+PROJECT_ROOT = @PROJECT_ROOT@
+
+VPATH = @srcdir@
+
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
include $(RTEMS_ROOT)/make/directory.cfg
SUB_DIRS=$(wildcard $(RTEMS_HOST))
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/tools/build/os/msdos/Makefile.in b/tools/build/os/msdos/Makefile.in
index bcd523fb64..022d2e5df2 100644
--- a/tools/build/os/msdos/Makefile.in
+++ b/tools/build/os/msdos/Makefile.in
@@ -4,12 +4,17 @@
@SET_MAKE@
srcdir = @srcdir@
-VPATH = @srcdir@
-RTEMS_ROOT = @top_srcdir@
-PROJECT_ROOT = @PROJECT_ROOT@
+top_srcdir = @top_srcdir@
+top_builddir = ../../../..
+subdir = c/build-tools/os/msdos
INSTALL = @INSTALL@
+RTEMS_ROOT = $(top_srcdir)/@RTEMS_TOPdir@
+PROJECT_ROOT = @PROJECT_ROOT@
+
+VPATH = @srcdir@
+
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
include $(RTEMS_ROOT)/make/leaf.cfg
@@ -39,3 +44,6 @@ $(DESTDIR)/fixtimer.exe: fixtimer.uue
uudecode <fixtimer.uue
mv fixtimer.exe $(DESTDIR)/fixtimer.exe
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/tools/build/scripts/Makefile.in b/tools/build/scripts/Makefile.in
index eaf1dd397f..0cf29845f4 100644
--- a/tools/build/scripts/Makefile.in
+++ b/tools/build/scripts/Makefile.in
@@ -8,15 +8,19 @@
@SET_MAKE@
srcdir = @srcdir@
-VPATH = @srcdir@
-RTEMS_ROOT = @top_srcdir@
-PROJECT_ROOT = @PROJECT_ROOT@
+top_srcdir = @top_srcdir@
+top_builddir = ../../..
+subdir = c/build-tools/scripts
INSTALL = @INSTALL@
+RTEMS_ROOT = $(top_srcdir)/@RTEMS_TOPdir@
+PROJECT_ROOT = @PROJECT_ROOT@
+
+VPATH = @srcdir@
+
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
include $(RTEMS_ROOT)/make/leaf.cfg
-include $(RTEMS_ROOT)/make/rtems.cfg
DESTDIR=$(PROJECT_RELEASE)/build-tools
@@ -36,3 +40,7 @@ $(INSTALLED_PGMS): $(PGMS)
$(INSTALL) $(INSTBINFLAGS) $^ $(DESTDIR)
install: $(DESTDIR) $(INSTALLED_PGMS)
+
+%: $(srcdir)/%.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/tools/build/src/Makefile.in b/tools/build/src/Makefile.in
index 415017a9aa..40558baec3 100644
--- a/tools/build/src/Makefile.in
+++ b/tools/build/src/Makefile.in
@@ -4,6 +4,15 @@
@SET_MAKE@
srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = ../../..
+subdir = c/build-tools/src
+
+INSTALL = @INSTALL@
+
+RTEMS_ROOT = $(top_srcdir)/@RTEMS_TOPdir@
+PROJECT_ROOT = @PROJECT_ROOT@
+
exec_prefix = @exec_prefix@
bindir = @bindir@
libdir = @libdir@
@@ -16,10 +25,6 @@ mandir = @mandir@/man$(manext)
EXEEXT=@EXEEXT@
VPATH = @srcdir@
-RTEMS_ROOT = @top_srcdir@
-PROJECT_ROOT = @PROJECT_ROOT@
-
-INSTALL = @INSTALL@
# we use host compiler in this directory
USE_HOST_COMPILER=yes
@@ -70,3 +75,7 @@ $(DESTDIR):
all: $(ARCH) $(DESTDIR) $(SRCS) $(PGMS)
$(INSTALL) $(INSTBINFLAGS) $(PGMS) $(DESTDIR)
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/tools/cpu/Makefile.in b/tools/cpu/Makefile.in
index 72d96812df..c8d387af9f 100644
--- a/tools/cpu/Makefile.in
+++ b/tools/cpu/Makefile.in
@@ -4,13 +4,22 @@
@SET_MAKE@
srcdir = @srcdir@
-VPATH = @srcdir@
-RTEMS_ROOT = @top_srcdir@
-PROJECT_ROOT = @PROJECT_ROOT@
+top_srcdir = @top_srcdir@
+top_builddir = ../../../../..
+subdir = c/src/exec/score/tools
INSTALL = @INSTALL@
+RTEMS_ROOT = $(top_srcdir)/@RTEMS_TOPdir@
+PROJECT_ROOT = @PROJECT_ROOT@
+
+VPATH = @srcdir@
+
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
include $(RTEMS_ROOT)/make/directory.cfg
SUB_DIRS=generic $(wildcard $(RTEMS_CPU))
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/tools/cpu/generic/Makefile.in b/tools/cpu/generic/Makefile.in
index d81dfe5ffa..9710c36d06 100644
--- a/tools/cpu/generic/Makefile.in
+++ b/tools/cpu/generic/Makefile.in
@@ -8,15 +8,19 @@
@SET_MAKE@
srcdir = @srcdir@
-VPATH = @srcdir@
-RTEMS_ROOT = @top_srcdir@
-PROJECT_ROOT = @PROJECT_ROOT@
+top_srcdir = @top_srcdir@
+top_builddir = ../../../../../..
+subdir = c/src/exec/score/tools/generic
INSTALL = @INSTALL@
+RTEMS_ROOT = $(top_srcdir)/@RTEMS_TOPdir@
+PROJECT_ROOT = @PROJECT_ROOT@
+
+VPATH = @srcdir@
+
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
include $(RTEMS_ROOT)/make/leaf.cfg
-include $(RTEMS_ROOT)/make/rtems.cfg
DESTDIR=$(PROJECT_RELEASE)/bin
@@ -36,3 +40,7 @@ $(INSTALLED_PGMS): $(PGMS)
$(INSTALL) $(INSTBINFLAGS) $^ $@
install: $(DESTDIR) $(INSTALLED_PGMS)
+
+%: $(srcdir)/%.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/tools/cpu/sh/Makefile.in b/tools/cpu/sh/Makefile.in
index 75537ef4ca..93fe29cfcf 100644
--- a/tools/cpu/sh/Makefile.in
+++ b/tools/cpu/sh/Makefile.in
@@ -6,12 +6,17 @@
@SET_MAKE@
srcdir = @srcdir@
-VPATH = @srcdir@
-RTEMS_ROOT = @top_srcdir@
-PROJECT_ROOT = @PROJECT_ROOT@
+top_srcdir = @top_srcdir@
+top_builddir = ../../../../../..
+subdir = c/src/exec/score/tools/sh
INSTALL = @INSTALL@
+RTEMS_ROOT = $(top_srcdir)/@RTEMS_TOPdir@
+PROJECT_ROOT = @PROJECT_ROOT@
+
+VPATH = @srcdir@
+
# we use the host compiler here
USE_HOST_COMPILER=yes
@@ -62,3 +67,7 @@ $(DESTDIR):
# Install the program
install: $(DESTDIR) $(PGMS)
$(INSTALL) $(INSTBINFLAGS) ${PGMS} $(DESTDIR)
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/tools/cpu/unix/Makefile.in b/tools/cpu/unix/Makefile.in
index 75320594ea..e1098093b0 100644
--- a/tools/cpu/unix/Makefile.in
+++ b/tools/cpu/unix/Makefile.in
@@ -4,12 +4,17 @@
@SET_MAKE@
srcdir = @srcdir@
-VPATH = @srcdir@
-RTEMS_ROOT = @top_srcdir@
-PROJECT_ROOT = @PROJECT_ROOT@
+top_srcdir = @top_srcdir@
+top_builddir = ../../../../../..
+subdir = c/src/exec/score/tools/unix
INSTALL = @INSTALL@
+RTEMS_ROOT = $(top_srcdir)/@RTEMS_TOPdir@
+PROJECT_ROOT = @PROJECT_ROOT@
+
+VPATH = @srcdir@
+
# we use host compiler here for gensize. Hopefully it has same alignment!!
USE_HOST_COMPILER=yes
@@ -58,3 +63,7 @@ preinstall: ${ARCH} $(SRCS) $(PGMS)
# Install the program(s), appending _g or _p as appropriate.
# for include files, just use $(INSTALL_CHANGE)
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/tools/update/Makefile.in b/tools/update/Makefile.in
index 2bd9896aa6..91a9ebcfb6 100644
--- a/tools/update/Makefile.in
+++ b/tools/update/Makefile.in
@@ -4,15 +4,19 @@
@SET_MAKE@
srcdir = @srcdir@
-VPATH = @srcdir@
-RTEMS_ROOT = @top_srcdir@
-PROJECT_ROOT = @PROJECT_ROOT@
+top_srcdir = @top_srcdir@
+top_builddir = ../..
+subdir = c/update-tools
INSTALL = @INSTALL@
+RTEMS_ROOT = $(top_srcdir)/@RTEMS_TOPdir@
+PROJECT_ROOT = @PROJECT_ROOT@
+
+VPATH = @srcdir@
+
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
include $(RTEMS_ROOT)/make/leaf.cfg
-include $(RTEMS_ROOT)/make/rtems.cfg
DESTDIR=$(PROJECT_RELEASE)/update-tools
@@ -43,3 +47,6 @@ $(INSTALLED_DATA): $(MISC_SUPPORT)
install: $(DESTDIR) $(INSTALLED_PGMS) $(INSTALLED_DATA)
+%: $(srcdir)/%.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/tools/update/acpolish b/tools/update/acpolish
new file mode 100755
index 0000000000..485ba2131c
--- /dev/null
+++ b/tools/update/acpolish
@@ -0,0 +1,159 @@
+#!/usr/bin/perl
+
+#
+# Perl script to beautify and enhance RTEMS autoconf Makefile.ins
+#
+# Reads from stdin and writes to stdout
+#
+# usage:
+# acpolish <Makefile.in >Makefile.in~
+# mv Makefile.in~ Makefile.in
+#
+# ATTENTION: This file contains embedded tabs
+
+if ( -f "Makefile.am" )
+{
+ # Refuse to work on autoconfiscated Makefile.ins;
+ # redirecting STDOUT to Makefile.in will trash the Makefile.in ;-
+
+ die "acpolish must not be run in autoconfiscated directories" ;
+}
+
+
+my $build_pgms_seen = "" ;
+my $top_builddir = "";
+my $subdir = "";
+
+sub find_root
+{
+ $top_builddir = "." ;
+ $subdir="";
+ my $pwd = `pwd`; chomp $pwd;
+ $pwd .= "/" ;
+ my $len ;
+
+ if ( -f "configure.in" ) { return $top_builddir ; }
+ my $i = rindex($pwd,'/');
+
+ $len = $i;
+ $pwd = substr($pwd,0,$len);
+ $i = rindex($pwd,'/');
+ $subdir = substr($pwd,$i+1,$len - 1);
+ $top_builddir = ".." ;
+
+ while( -d "$top_builddir" )
+ {
+ if ( -f "${top_builddir}/configure.in" )
+ {
+ return $top_builddir ;
+ }
+ $len=$i;
+ $pwd = substr($pwd,0,$len);
+ $i = rindex($pwd,'/');
+ $subdir = substr($pwd,$i+1,$len - 1) . "/$subdir";
+ $top_builddir .= "/.." ;
+ } ;
+ die "Can't find configure.in\n" ;
+}
+
+find_root();
+
+my $nl_seen = 0 ;
+
+while( <> )
+{
+ if ( /^[ ]*$/o )
+ {
+ $nl_seen = $nl_seen+1;
+ }
+
+ if ( /^[ ]*srcdir[ ]*=.*$/o )
+ {
+ print "\@SET_MAKE\@\n" ;
+ print "$_" ;
+ print "top_srcdir = \@top_srcdir\@\n" ;
+ print "top_builddir = $top_builddir\n" ;
+ print "subdir = $subdir\n" if "$subdir" ;
+ print "\nINSTALL = \@INSTALL\@\n\n";
+ print "RTEMS_ROOT = \$(top_srcdir)/\@RTEMS_TOPdir\@\n" ;
+ print "PROJECT_ROOT = \@PROJECT_ROOT\@\n\n" ;
+ $nl_seen=1;
+ }
+ elsif ( /^[ ]*top_srcdir[ ]*=.*$/o )
+ {
+ # remove the line
+ }
+ elsif ( /^[ ]*top_builddir[ ]*=.*$/o )
+ {
+ # remove the line
+ }
+ elsif ( /^[ ]*Makefile:.*/o )
+ { # consume the block
+ while( <> ) { last if /^[ ]*$/o ; }
+ }
+ elsif ( /^[ ]*%:[ ]\$\(srcdir\)\/%\.in.*$/o )
+ { # consume the block
+ while( <> ) { last if /^[ ]*$/o ; }
+ }
+ elsif ( /^[ ]*RTEMS_ROOT[ ]*=.*$/o )
+ {
+ # remove the line
+ }
+ elsif ( /^[ ]*PROJECT_ROOT[ ]*=.*$/o )
+ {
+ # remove the line
+ }
+ elsif ( /^[ ]*INSTALL[ ]*=[ ]*\@INSTALL\@.*$/o )
+ {
+ # remove the line
+ }
+ elsif ( /^[ ]*subdir[ ]*=.*$/o )
+ {
+ # remove the line
+ }
+ elsif ( /^[ ]*\@SET_MAKE\@.*$/o )
+ {
+ # remove the line
+ }
+ elsif ( /^include[ ]*.*rtems\.cfg.*$/o )
+ {
+ # remove the line
+ }
+ elsif ( /^[ ]*BUILD_PGMS.*=.*$/o )
+ {
+ $build_pgms_seen = "true" ;
+ print "$_" ;
+ $nl_seen=0;
+ }
+ elsif ( /^[ ]*$/o )
+ {
+ print "$_" if $nl_seen < 2 ;
+ }
+ else
+ {
+ print "$_" ;
+ $nl_seen = 0;
+ }
+} # while
+
+print "\n" if $nl_seen < 1 ;
+
+# Add rules for config.status generated files
+if ( "$build_pgms_seen" )
+{
+print "%: \$(srcdir)/%.in \$(top_builddir)/config.status\n" ;
+print " cd \$(top_builddir) \\\n" ;
+print " && CONFIG_FILES=" ;
+print "\$(subdir)/" if ( "$subdir" );
+print "\$@ CONFIG_HEADERS= \$(SHELL) ./config.status\n";
+}
+else
+{
+print "Makefile: \$(srcdir)/Makefile.in \$(top_builddir)/config.status\n" ;
+print " cd \$(top_builddir) \\\n" ;
+print " && CONFIG_FILES=" ;
+print "\$(subdir)/" if ( "$subdir" );
+print "\$@ CONFIG_HEADERS= \$(SHELL) ./config.status\n";
+}
+
+;1