###############################################################################
# Copyright (c) 2000, 2003 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
source.startup.jar=src/

src.includes=about.html,launchersrc.zip

bin.includes=\
about.html,\
about.ini,\
about.mappings,\
about.properties,\
eclipse_lg.gif,\
eclipse.gif,\
eclipse32.gif,\
plugin_customization.ini,\
plugin_customization.properties,\
plugin.xml,\
plugin.properties,\
splash.bmp,\
welcome.xml

# note: the following files are intentionally not listed in bin.includes
#    install.ini
#    cpl-v10.html
#    notice.html
#    startup.jar
# these files need to end up as root files in <install>/eclipse/
