Automake supports Vala (https://vala.dev/).
Vala support requires the user to use GNU make
.
foo_SOURCES = foo.vala bar.vala zardoz.c
Any .vala file listed in a _SOURCES
variable will be
compiled into C code by the Vala compiler. The generated .c
files are distributed. The end user does not need to have a Vala
compiler installed.
Because all C files must be generated, and the Vala compiler compiles
all the .vala files for a target at once, it is not possible to
add files to a _SOURCES
variable that cannot be compiled
together; for example, alternative platform-specific definitions of
the same methods.
Automake ships with an Autoconf macro called AM_PROG_VALAC
that will locate the Vala compiler and optionally check its version
number.
[action-if-not-found])
Search for a Vala compiler in PATH
. If it is found, the variable
VALAC
is set to point to it (see below for more details). This
macro takes three optional arguments. The first argument, if present,
is the minimum version of the Vala API required to compile this package.
For Vala releases, this is the same as the major and minor release
number; e.g., when valac --version
reports 0.48.7
,
valac --api-version
reports 0.48
. If a compiler is found
and satisfies minimum-version, then action-if-found is run
(this defaults to do nothing). Otherwise, action-if-not-found is
run. If action-if-not-found is not specified, the default value
is to print a warning in case no compiler is found, or if a too-old
version of the compiler is found.
There are a few variables that are used when compiling Vala sources:
VALAC
¶Absolute path to the Vala compiler, or simply ‘valac’ if no suitable Vala compiler could be found at configure runtime.
VALAFLAGS
¶Additional arguments for the Vala compiler.
AM_VALAFLAGS
¶The maintainer’s variant of VALAFLAGS
.
lib_LTLIBRARIES = libfoo.la libfoo_la_SOURCES = foo.vala
Note that currently, you cannot use per-target *_VALAFLAGS
(see Why are object files sometimes renamed?) to produce different C files from one Vala
source file.