Auto XT
Stratego -- Strategies for Program Transformation
The autoxt package provides Autoconf and Automake support for packages
constructed with the XT toolset. The package provides the
autoxt
tool
which should be run as part of the Autoconf/Automake bootstrapping process,
prior to running
autoconf
. A typical
bootstrap
script looks like:
#! /bin/sh
autoxt
autoreconf -if
The toplevel
Makefile.am
should declare:
ACLOCAL_AMFLAGS = -I .
Autoconf
Autoxt installs a set of m4 macros
autoxt.m4
with support for
package configuration switches. By just including the macro call
XT_USE_XT_PACKAGES
a
configure.ac
file can be parameterized with
switches for all the StrategoXT packages:
AC_INIT([java-front],[0.6],[stratego-bugs@cs.uu.nl])
AM_INIT_AUTOMAKE
XT_USE_XT_PACKAGES
XT_PKG_ATERM
XT_PKG_SDF
XT_PKG_STRATEGOXT
AC_PROG_CC
AC_PROG_INSTALL
AC_CONFIG_FILES([Makefile syn/Makefile])
AC_OUTPUT
Automake
Furthermore, autoxt installs
Makefile.xt
, a collection of automake
rules for compiling Stratego programs and applying other XT tools,
such as signature generation. Using this makefile, a makefile
reduces to a declaration of programs to be compiled. The makefile
automatically takes care of distributing the generated C code. The
specification will only be compiled when it is newer than the C
code. This means that packages using autoxt can be built using only
the Stratego Run-Time System (srts).
include $(top_srcdir)/Makefile.xt
include $(wildcard *.dep)
bin_PROGRAMS = xtc
pkgdata_DATA = xtc-lib.rtree xtc-rep.rtree xtc-proc.rtree xtc-register.rtree
SCFLAGS = --main $*
STRINCLUDES = -I $(XTC)/share/xtc
EXTRA_DIST = $(pkgdata_DATA) $(wildcard *.str) $(wildcard *.meta)
CLEANFILES = $(wildcard *.dep)
BOOTCLEANFILES = xtc.c
See also: