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

tools:                                          tools
core:                                           core
ant:                                            ant
test:                                           test

lib:                                            lib
data:                                           data
res:                                            res

java:                                           java
java12:                                         java12
java13:                                         java13
java14:                                         java14

ant14:                                          ant14
ant15:                                          ant15

internal:                                       internal
external:                                       external

# -----------------------------------------------------------------------------
# ---- module-specific static (checked-in) locations:

# -----------------------------------------------------------------------------
# lib module structure:

lib.dir.root:                                   ${basedir}/${lib}

internal.lib.dir:                               ${lib.dir.root}/${internal}
external.lib.dir:                               ${lib.dir.root}/${external}

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

core.dir.root:                                  ${basedir}/${core}

core.src.java12.dir:                            ${core.dir.root}/${java12}
core.src.java13.dir:                            ${core.dir.root}/${java13}
core.src.java14.dir:                            ${core.dir.root}/${java14}

core.res.dir:                                   ${core.dir.root}/${res}
core.data.dir:                                  ${core.dir.root}/${data}

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

ant.dir.root:                                   ${basedir}/${ant}

ant.src.ant14.dir:                              ${ant.dir.root}/${ant14}
ant.src.ant15.dir:                              ${ant.dir.root}/${ant15}

ant.res.dir:                                    ${ant.dir.root}/${res}
ant.data.dir:                                   ${ant.dir.root}/${data}

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

tools.dir.root:                                 ${basedir}/${tools}

tools.src.dir:                                  ${tools.dir.root}/${java}

tools.res.dir:                                  ${tools.dir.root}/${res}
tools.data.dir:                                 ${tools.dir.root}/${data}

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

test.dir.root:                                   ${basedir}/${test}

test.src.dir:                                    ${test.dir.root}/${java}

test.res.dir:                                    ${test.dir.root}/${res}
test.data.dir:                                   ${test.dir.root}/${data}

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