##
#  Copyright (c) 2009-2010 Thales Corporate Services S.A.S.
#  All rights reserved. This program and the accompanying materials
#  are made available under the terms of the Eclipse Public License v1.0
#  which accompanies this distribution, and is available at
#  http://www.eclipse.org/legal/epl-v10.html
# 
#  Contributors:
#      Thales Corporate Services S.A.S - initial API and implementation
##

#eclipse
eclipse.download.prefix=file:/home/data/httpd/download.eclipse.org

#buckminster installation
buckminster.download.url=${eclipse.download.prefix}/tools/buckminster
director.url=${buckminster.download.url}/products/director_latest.zip
buckminster.release=3.6
bm.headless.site=${buckminster.download.url}/headless-${buckminster.release}

#do not generate version range with buckminster in manifest.mf and content.jar
pde.bundle.range.generation=false

#build
buckminster.loglevel=INFO

target.os=*
target.ws=*
target.arch=*

qualifier.replacement.*=generator:buildTimestamp
generator.buildTimestamp.format='v'yyyyMMdd-HHmm

signing.type=eclipse.local
site.signing=true
site.pack200=true
site.retain.unpacked=false

#egf
base.path=${build.root}/sources

#local
#eclipse.download.prefix=http://download.eclipse.org
#site.signing=false