# -----------------------------------------------------------------------------
# misc aliases:

classes:                                        classes
files:                                          files
srcgen:                                         srcgen

# -----------------------------------------------------------------------------
# ---- root locations created by the build:

# root dir of all build output:
out.dir:                                        ${basedir}/out

# distribution dir:
dist.dir:                                       ${basedir}/dist

# distribution dir:
release.dir:                                    ${basedir}/release

# directory for scratch files:
temp.dir:                                       ${out.dir}/temp

# -----------------------------------------------------------------------------
# ---- module-specific locations created by the build:

# -----------------------------------------------------------------------------
# core module:

core.classes.out.dir:                           ${out.dir}/${core}/${classes}
core.srcgen.out.dir:                            ${out.dir}/${core}/${srcgen}
core.res.out.dir:                               ${out.dir}/${core}/${res}

# -----------------------------------------------------------------------------
# ant module:

ant.classes.out.dir:                            ${out.dir}/${ant}/${classes}
ant.srcgen.out.dir:                             ${out.dir}/${ant}/${srcgen}

# -----------------------------------------------------------------------------
# tools module:

tools.classes.out.dir:                          ${out.dir}/${tools}/${classes}
tools.srcgen.out.dir:                           ${out.dir}/${tools}/${srcgen}

# -----------------------------------------------------------------------------
# test module:

test.classes.out.dir:                           ${out.dir}/${test}/${classes}
test.srcgen.out.dir:                            ${out.dir}/${test}/${srcgen}

# -----------------------------------------------------------------------------
# end of file
