# ---
# weinre is available under *either* the terms of the modified BSD license *or* the
# MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
# 
# Copyright (c) 2010, 2011 IBM Corporation
# ---

#-----------------------------------------------------------
# weinre version
#-----------------------------------------------------------
WEINRE_VERSION: 1.5.0

#-----------------------------------------------------------
# some common locations used in the ant scripts
#-----------------------------------------------------------

TMP:    tmp
OUT:    out
WEB:    out/web
CACHED: cached
VENDOR: vendor

#-----------------------------------------------------------
# project names used by the build scripts
#-----------------------------------------------------------

PROJECT_PREFIX:           weinre
PROJECT_APPLICATION:      ${PROJECT_PREFIX}.application
PROJECT_BUILD:            ${PROJECT_PREFIX}.build
PROJECT_DOC:              ${PROJECT_PREFIX}.doc
PROJECT_SERVER:           ${PROJECT_PREFIX}.server
PROJECT_WEB:              ${PROJECT_PREFIX}.web

