Skip to content

Ant build file

Kassing edited this page Mar 30, 2026 · 1 revision

Ant

Ant is the build manager for AProVE. Invoke it with ant -f build-aprove.xml <target>. The default target is dist.

All dependencies are pre-bundled as JARs in the lib/ directory — there is no Ivy or Maven dependency fetch step.

Common targets

Target Description
dist (default) Compile and produce dist/lib/aprove.jar
build Compile only (no JAR)
cleanAll Delete build/, gen/, and dist/
initialSetup Run once after first checkout: copies GlobalSettings.templateGlobalSettings.java and generates all grammar sources
generateSources Regenerate the gen/ folder (grammars + Haskell prelude) without rebuilding
regenerateGrammars Clean and regenerate grammars only — useful after switching branches
releasedist dist + packages aprove.jar and license files into dist/lib/aprove-release.zip
fastdist Same as dist but uses fastjar instead of the Ant <jar> task

Alternative main-class targets

These each call dist with a different Main-Class manifest attribute:

Target Main class
competition aprove.CommandLineInterface.Runme
ceta aprove.CommandLineInterface.RunmeCeTA
color aprove.CommandLineInterface.RunmeRainbow
a3pat aprove.CommandLineInterface.RunmeA3PAT
itrsmerger aprove.verification.dpframework.IDPProblem.utility.ITRSMerger

Build process (what dist does)

  1. Settings — if src/aprove/GlobalSettings.java does not exist, copy it from src/aprove/GlobalSettings.template.
  2. Generate grammars — run ANTLR/SableCC on all grammars in src/aprove/input/Grammars/; output goes to gen/aprove/input/Generated/.
  3. Generate Haskell prelude — produces .hs files into gen/.
  4. Copy resources — grammar .dat files, Haskell prelude, and all .properties, .strategy, .xsl, .dtd, .bib, etc. files from src/ are copied into build/.
  5. Compilejavac compiles src/ and gen/ into build/.
  6. Unjar dependencies — all lib/*.jar dependencies are unpacked into dist/lib/.
  7. Version infolib/GIT-VERSION-GEN writes a VERSION file into build/.
  8. Package — everything is combined into dist/lib/aprove.jar with Main-Class: aprove.Main.

Clone this wiki locally