summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-08-05 08:59:37 +0000
committerpaltherr <paltherr@epfl.ch>2003-08-05 08:59:37 +0000
commitbb672e7f07f05d03ee0a7b0da69c6cf763a542b9 (patch)
tree4c0248328cc36f22ba73ec1ee23142967d33c52c
parent863a5f0add804e0629b6add803438e0c0027883f (diff)
downloadscala-bb672e7f07f05d03ee0a7b0da69c6cf763a542b9.tar.gz
scala-bb672e7f07f05d03ee0a7b0da69c6cf763a542b9.tar.bz2
scala-bb672e7f07f05d03ee0a7b0da69c6cf763a542b9.zip
- Split Makefile into 3 files
- Removed references to linuxsoft
-rw-r--r--Makefile308
-rw-r--r--Makefile.config112
-rw-r--r--Makefile.distrib221
3 files changed, 339 insertions, 302 deletions
diff --git a/Makefile b/Makefile
index 43e660cc3a..3d0f23ed3a 100644
--- a/Makefile
+++ b/Makefile
@@ -4,18 +4,16 @@
# $Id$
##############################################################################
-# Include private stuff
+# Configuration
--include Makefile.private
+ROOT = .
+
+include $(ROOT)/Makefile.config
##############################################################################
# Variables
-ROOT = .
-
# project
-PROJECT_NAME = scala
-PROJECT_ROOT = $(ROOT)
PROJECT_SOURCES += $(LAMPLIB_SOURCES)
PROJECT_SOURCES += $(META_SOURCES)
PROJECT_SOURCES += $(RUNTIME_SOURCES)
@@ -23,10 +21,6 @@ PROJECT_SOURCES += $(COMPILER_SOURCES)
PROJECT_SOURCES += $(INTERPRETER_SOURCES)
PROJECT_SOURCES += $(SCALADOC_SOURCES)
PROJECT_SOURCES += $(DTD2SCALA_SOURCES)
-PROJECT_OUTPUTDIR = $(PROJECT_ROOT)/classes
-PROJECT_CLASSPATH = $(PROJECT_OUTPUTDIR)
-PROJECT_LISTDIR = $(PROJECT_ROOT)/config/list
-PROJECT_SOURCEDIR = $(PROJECT_ROOT)/sources
# project java archive
PROJECT_JAR_ARCHIVE = $(ROOT)/lib/$(PROJECT_NAME).jar
@@ -51,8 +45,6 @@ SCRIPTS_WRAPPER_ALIASES += surus-debug
SCRIPTS_WRAPPER_ALIASES += dtd2scala
# automatic generation of Function<n>.java and Tuple<n>.scala files
-TEMPLATE_EXPANDER = ./bin/expand-template
-
FUNCTION_PREFIX = $(RUNTIME_ROOT)
FUNCTION_FILES += $(filter $(FUNCTION_PREFIX)/Function%.java,$(RUNTIME_SOURCES))
FUNCTION_TEMPLATE = $(FUNCTION_PREFIX)/Function.java.tmpl
@@ -109,94 +101,15 @@ LIBRARY_ROOT = $(RUNTIME_ROOT)
LIBRARY_LIST = $(call READLIST,$(PROJECT_LISTDIR)/library.lst)
LIBRARY_FILES += $(LIBRARY_LIST:%=$(LIBRARY_ROOT)/%)
-# scala documents
-DOCUMENTS_ROOT = $(PROJECT_ROOT)/doc
-DOCUMENTS_FILES += $(DOCUMENTS_ROOT)/reference/reference.pdf
-DOCUMENTS_FILES += $(DOCUMENTS_ROOT)/reference/examples.pdf
-
-# scala examples
-EXAMPLES_ROOT = $(PROJECT_SOURCEDIR)/examples
-EXAMPLES_LIST += $(call READLIST, $(PROJECT_LISTDIR)/examples.lst)
-EXAMPLES_FILES = $(EXAMPLES_LIST:%=$(EXAMPLES_ROOT)/%)
-
-# emacs scala-mode
-EMACS_ROOT = $(PROJECT_ROOT)/support/emacs
-EMACS_LIST += $(call READLIST,$(PROJECT_LISTDIR)/emacs.lst)
-EMACS_FILES = $(EMACS_LIST:%=$(EMACS_ROOT)/%)
-
-# scala test
-TEST_ROOT = $(PROJECT_ROOT)/test
-TEST_LIST += $(call READLIST,$(PROJECT_LISTDIR)/test-pos.lst)
-TEST_LIST += $(call READLIST,$(PROJECT_LISTDIR)/test-neg.lst)
-TEST_LIST += $(call READLIST,$(PROJECT_LISTDIR)/test-run.lst)
-TEST_FILES = $(TEST_LIST:%=$(TEST_ROOT)/%)
-
# java compilation
JC_COMPILER = PICO
JC_OUTPUTDIR = $(PROJECT_OUTPUTDIR)
JC_CLASSPATH = $(PROJECT_CLASSPATH)
##############################################################################
-# Variables - libraries
-
-# BCEL (see http://jakarta.apache.org/bcel/)
-BCEL_HOME ?= /home/linuxsoft/apps/BCEL-5
-BCEL_JARFILE ?= $(BCEL_HOME)/bcel.jar
-BCEL_LICENSE = $(BCEL_HOME)/LICENSE
-
-# FJBG
-FJBG_HOME ?= /home/linuxsoft/apps/fjbg/jars
-FJBG_JARFILE = $(FJBG_HOME)/fjbg.jar
-
-# XERCES
-XERCES_HOME ?= /home/linuxsoft/apps/xerces
-XERCES_JARFILE = $(XERCES_HOME)/xercesImpl.jar
-XERCES_LICENSE = $(XERCES_HOME)/LICENSE
-
-# needed for the .NET backend
-MSIL_HOME ?= /home/linuxsoft/apps/java2net
-MSIL_JARFILE ?= $(MSIL_HOME)/msil.jar
-
-##############################################################################
-# Variables - tools
-
-ECHO ?= echo
-CAT ?= cat
-JAR ?= jar
-GREP ?= grep
-FIND ?= find
-WC ?= wc
-SED ?= sed
-M4 ?= m4
-RM ?= rm -f
-CP ?= cp
-LN ?= ln
-MKDIR ?= mkdir
-TOUCH ?= touch
-CHMOD ?= chmod
-DIRNAME ?= dirname
-BASENAME ?= basename
-DATE ?= date
-NICE ?= nice
-ZIP ?= zip
-UNIX2DOS ?= unix2dos
-XARGS ?= xargs
-JAVA ?= java
-
-PICO ?= pico
-PICO_FLAGS += -make -source 1.4
-
-##############################################################################
-# Functions
-
-RUN = echo '$(1)'; $(1) || exit $$?
-READLIST = $(shell cat $(1) | grep -v "^\#")
-
-make += $(MAKE) MAKELEVEL=$(MAKELEVEL) --no-print-directory
-
-##############################################################################
# Commands
+
all : $(PROJECT_OUTPUTDIR)
all : scripts
all : lamplib
@@ -235,12 +148,6 @@ distclean : clean
$(RM) $(PROJECT_JAR_ARCHIVE)
$(RM) $(ROOT)/support/latex/*.class
-fixcvs :
- $(strip \
- $(FIND) . -type f -perm +a=x | \
- $(GREP) -v '.*/bin/.*' | \
- $(XARGS) -r $(CHMOD) a-x)
-
scripts : $(SCRIPTS_WRAPPER_LINKS)
lamplib : .latest-lamplib
meta : .latest-meta
@@ -252,12 +159,7 @@ scaladoc : .latest-scaladoc
dtd2scala : .latest-dtd2scala
library : .latest-library
-.PHONY : all
-.PHONY : force
.PHONY : fastclean
-.PHONY : clean
-.PHONY : distclean
-.PHONY : fixcvs
.PHONY : scripts
.PHONY : lamplib
.PHONY : meta
@@ -378,207 +280,9 @@ $(PROJECT_JAR_ARCHIVE) :
@$(MAKE) jar target=PROJECT
##############################################################################
+# Includes
-include $(ROOT)/support/make/cygwin.mk
include $(ROOT)/support/make/jc.mk
include $(ROOT)/support/make/jar.mk
-include $(ROOT)/support/make/exec.mk
-include $(ROOT)/support/make/grep.mk
-include $(ROOT)/support/make/wc.mk
-
-##############################################################################
-
-##############################################################################
-# beta versions
-##############################################################################
-
-INSTALL = $(ROOT)/support/scripts/install
-MIRROR = $(ROOT)/support/scripts/mirror
-
-INSTALL_VERSION = install-test
-INSTALL_PREFIX = $(ROOT)/distribs/scala-test
-INSTALL_BINDIR = $(INSTALL_PREFIX)/bin
-INSTALL_DOCDIR = $(INSTALL_PREFIX)/doc
-INSTALL_LIBDIR = $(INSTALL_PREFIX)/lib
-INSTALL_DATADIR = $(INSTALL_PREFIX)/share
-INSTALL_DATADIR_ROOT = $(INSTALL_DATADIR)/$(PROJECT_NAME)
-INSTALL_DATADIR_LIBRARY = $(INSTALL_DATADIR_ROOT)/library
-INSTALL_DATADIR_EXAMPLES = $(INSTALL_DATADIR_ROOT)/examples
-INSTALL_DATADIR_TEST = $(INSTALL_DATADIR_ROOT)/test
-INSTALL_DATADIR_EMACS = $(INSTALL_DATADIR)/emacs/site-lisp
-
-install-clean :
- $(RM) -r $(INSTALL_PREFIX)
-
-install : $(PROJECT_JAR_ARCHIVE)
- $(MAKE) -C $(DOCUMENTS_ROOT)/reference all
- $(INSTALL) -m 755 -d $(INSTALL_PREFIX)
- $(INSTALL) -m 755 -d $(INSTALL_BINDIR)
- $(INSTALL) -m 755 $(ROOT)/bin/.scala_wrapper $(INSTALL_BINDIR)
- @$(MAKE) SCRIPTS_PREFIX=$(INSTALL_BINDIR) scripts
- $(INSTALL) -m 755 -d $(INSTALL_DOCDIR)
- $(INSTALL) -m 644 $(DOCUMENTS_FILES) $(INSTALL_DOCDIR)
- $(INSTALL) -m 755 -d $(INSTALL_LIBDIR)
- $(INSTALL) -m 644 $(PROJECT_JAR_ARCHIVE) $(INSTALL_LIBDIR)
- $(INSTALL) -m 644 $(BCEL_LICENSE) $(INSTALL_LIBDIR)/bcel.LICENSE
- $(INSTALL) -m 644 $(BCEL_JARFILE) $(INSTALL_LIBDIR)/bcel.jar
- $(INSTALL) -m 644 $(MSIL_JARFILE) $(INSTALL_LIBDIR)/msil.jar
- $(INSTALL) -m 644 $(FJBG_JARFILE) $(INSTALL_LIBDIR)/fjbg.jar
- $(INSTALL) -m 755 -d $(INSTALL_DATADIR)
- $(INSTALL) -m 755 -d $(INSTALL_DATADIR_ROOT)
- $(INSTALL) -m 755 -d $(INSTALL_DATADIR_LIBRARY)
- $(strip $(MIRROR) -m 644 -C $(LIBRARY_ROOT) $(LIBRARY_LIST:%='%') \
- $(INSTALL_DATADIR_LIBRARY)/$(PROJECT_NAME))
- $(INSTALL) -m 755 -d $(INSTALL_DATADIR_EXAMPLES)
- $(strip $(MIRROR) -m 644 -C $(EXAMPLES_ROOT) $(EXAMPLES_LIST) \
- $(INSTALL_DATADIR_EXAMPLES))
- $(INSTALL) -m 755 -d $(INSTALL_DATADIR)/$(PROJECT_NAME)/test
- $(INSTALL) -m 755 -d $(INSTALL_DATADIR)/$(PROJECT_NAME)/test/bin
- $(INSTALL) -m 755 $(ROOT)/test/bin/scala-test $(INSTALL_DATADIR_TEST)/bin
- $(strip $(MIRROR) -m 644 -C $(TEST_ROOT) $(TEST_LIST) \
- $(INSTALL_DATADIR_TEST))
- $(strip $(MIRROR) -m 644 -C $(TEST_ROOT) \
- $(shell cd $(TEST_ROOT); ls $(TEST_LIST:%.scala=%.check) 2>/dev/null) \
- $(INSTALL_DATADIR_TEST))
- $(strip $(MIRROR) -m 644 -C $(TEST_ROOT) \
- $(shell cd $(TEST_ROOT); ls $(TEST_LIST:%.scala=%.flags) 2>/dev/null) \
- $(INSTALL_DATADIR_TEST))
- $(INSTALL) -m 755 -d $(INSTALL_DATADIR_EMACS)
- $(strip $(MIRROR) -m 644 -C $(EMACS_ROOT) $(EMACS_LIST) \
- $(INSTALL_DATADIR_EMACS))
- $(INSTALL) -m 644 $(ROOT)/README $(INSTALL_PREFIX)
- $(INSTALL) -m 644 $(ROOT)/LICENSE $(INSTALL_PREFIX)
- $(ECHO) $(INSTALL_VERSION) > $(INSTALL_PREFIX)/VERSION
- $(CHMOD) 644 $(INSTALL_PREFIX)/VERSION
-
-
-install-windows :
- @if [ ! -d "$(INSTALL_PREFIX)" ]; then \
- echo "Could not find UNIX install '$(INSTALL_PREFIX)'"; \
- exit 1; \
- fi
- $(UNIX2DOS) $(INSTALL_PREFIX)/README
- $(UNIX2DOS) $(INSTALL_PREFIX)/LICENSE
- $(UNIX2DOS) $(INSTALL_PREFIX)/VERSION
- $(UNIX2DOS) $(INSTALL_LIBDIR)/bcel.LICENSE
- $(TOUCH) $(INSTALL_PREFIX)/VERSION-$(INSTALL_VERSION)
- @root=`cd "$(INSTALL_PREFIX)"; pwd`; \
- for file in "" $(SCRIPTS_WRAPPER_ALIASES); do \
- if [ -z "$$file" ]; then continue; fi; \
- echo -n "Generating $$file.bat ... "; \
- srcfile="$(ROOT)/support/windows/scala_wrapper"; \
- nixfile="$(INSTALL_PREFIX)/bin/$$file"; \
- winfile="$(INSTALL_PREFIX)/bin/$$file.bat"; \
- nixexec=`SCALA_WRAPPER_EXEC=echo $$nixfile`; \
- winexec="$$nixexec"; \
- winexec=`echo "$$winexec" | sed -es"#$$root#%SCALA_HOME%#g"`; \
- winexec=`echo "$$winexec" | tr '/' '\\\\' | tr ':' ';'`; \
- $(RM) -f "$$winfile"; \
- ( \
- $(CAT) "$$srcfile-header.bat"; \
- $(ECHO) "set VERSION=$(INSTALL_VERSION)"; \
- $(ECHO) "set COMMAND=$$winexec"; \
- $(CAT) "$$srcfile-footer.bat"; \
- ) | $(UNIX2DOS) >> "$$winfile"; \
- $(RM) "$$nixfile"; \
- echo "done"; \
- done
- $(RM) $(INSTALL_PREFIX)/bin/.scala_wrapper
- $(FIND) $(INSTALL_DATADIR_LIBRARY) -type f -exec unix2dos "{}" ";"
- $(FIND) $(INSTALL_DATADIR_EXAMPLES) -type f -exec unix2dos "{}" ";"
- $(FIND) $(INSTALL_DATADIR_TEST) -type f -exec unix2dos "{}" ";"
- $(FIND) $(INSTALL_DATADIR_EMACS) -type f -exec unix2dos "{}" ";"
-
-.PHONY : install
-.PHONY : install-windows
-
-##############################################################################
-
-DISTRIB_REPOSITORY = $(ROOT)/distribs
-DISTRIB_VERSION := $(shell $(DATE) -u "+%Y%m%d-%H%M%S")
-DISTRIB_NAME = $(PROJECT_NAME)-$(DISTRIB_VERSION)
-DISTRIB_PREFIX = $(DISTRIB_REPOSITORY)/$(DISTRIB_NAME)
-DISTRIB_ARCHIVE = $(DISTRIB_REPOSITORY)/$(DISTRIB_NAME).tar.gz
-
-distrib-extract :
- @if [ ! -f "$(DISTRIB_ARCHIVE)" ]; then \
- echo "Could not find source archive '$(DISTRIB_ARCHIVE)'"; \
- exit 1; \
- fi
- @if [ -d "$(DISTRIB_PREFIX)" ]; then \
- $(call RUN,$(RM) -rf $(DISTRIB_PREFIX)); \
- fi
- tar xvzf $(DISTRIB_ARCHIVE) -C $(DISTRIB_REPOSITORY)
-
-distrib-build-unix :
- @$(MAKE) INSTALL_PREFIX=$(DISTRIB_PREFIX) \
- INSTALL_VERSION=$(DISTRIB_VERSION) install
- tar czf $(DISTRIB_ARCHIVE) -C $(DISTRIB_REPOSITORY) $(DISTRIB_NAME)
-
-distrib-build-windows :
- @$(MAKE) INSTALL_PREFIX=$(DISTRIB_PREFIX) \
- INSTALL_VERSION=$(DISTRIB_VERSION) install-windows
- $(RM) -f $(DISTRIB_PREFIX).zip
- cd $(DISTRIB_REPOSITORY); \
- $(ZIP) -q -r $(DISTRIB_NAME).zip $(DISTRIB_NAME)
-
-distrib-clean :
- $(RM) -rf $(DISTRIB_PREFIX)
-
-distrib-unix : distrib-build-unix
-distrib-unix : distrib-clean
-
-distrib-windows : DISTRIB_NAME=$(notdir $(ARGS:%.tar.gz=%))
-distrib-windows : DISTRIB_VERSION=$(DISTRIB_NAME:scala-%=%)
-distrib-windows : distrib-extract
-distrib-windows : distrib-build-windows
-distrib-windows : distrib-clean
-
-distrib-all-oses : distrib-build-unix
-distrib-all-oses : distrib-build-windows
-distrib-all-oses : distrib-clean
-
-distrib-14 :
- @if [ -f "$(ROOT)/bin/.scala_wrapper.bak" ]; then \
- echo "There is a backup of .scala_wrapper, maybe you should run: "; \
- echo "make distrib-13-undo"; \
- exit 1; \
- fi
- @$(MAKE) distrib-all-oses DISTRIB_VERSION=$(DISTRIB_VERSION);
-
-distrib-13-undo :
- @$(MAKE) clean;
- mv $(ROOT)/bin/.scala_wrapper.bak $(ROOT)/bin/.scala_wrapper
-
-distrib-13 : PATH:=/home/linuxsoft/apps/java-1.3/bin:$(PATH)
-distrib-13 :
- @if [ -f "$(ROOT)/bin/.scala_wrapper.bak" ]; then \
- echo "Cannot save .scala_wrapper, there is already a backup," \
- "maybe you should run: "; \
- echo "make distrib-13-undo"; \
- exit 1; \
- fi
- mv $(ROOT)/bin/.scala_wrapper $(ROOT)/bin/.scala_wrapper.bak
- $(SED) -e "s/-enableassertions//" $(ROOT)/bin/.scala_wrapper.bak \
- > $(ROOT)/bin/.scala_wrapper
- @$(MAKE) clean;
- @$(MAKE) COMPILER_JC_FLAGS="$(COMPILER_JC_FLAGS) -target 1.3"
- @$(MAKE) distrib-all-oses DISTRIB_VERSION=$(DISTRIB_VERSION)-jdk-1.3;
- @$(MAKE) distrib-13-undo;
-
-distrib : distrib-14
-#distrib : distrib-13
-
-.PHONY : distrib-extract
-.PHONY : distrib-build-unix
-.PHONY : distrib-build-windows
-.PHONY : distrib-clean
-.PHONY : distrib-unix
-.PHONY : distrib-windows
-.PHONY : distrib-all-oses
-.PHONY : distrib-14
-.PHONY : distrib-13-undo
-.PHONY : distrib-13
-.PHONY : distrib
##############################################################################
diff --git a/Makefile.config b/Makefile.config
new file mode 100644
index 0000000000..e58ed19a7c
--- /dev/null
+++ b/Makefile.config
@@ -0,0 +1,112 @@
+############################################################-*-Makefile-*-####
+# Project Configuration
+##############################################################################
+# $Id$
+
+##############################################################################
+# Read local configuration
+
+-include $(ROOT)/Makefile.private
+
+##############################################################################
+# Project setup
+
+PROJECT_NAME ?= scala
+PROJECT_ROOT ?= $(ROOT)
+PROJECT_CONFIGDIR ?= $(PROJECT_ROOT)/config
+PROJECT_LIBRARYDIR ?= $(PROJECT_ROOT)/lib
+PROJECT_SUPPORTDIR ?= $(PROJECT_ROOT)/support
+PROJECT_SOURCEDIR ?= $(PROJECT_ROOT)/sources
+PROJECT_OUTPUTDIR ?= $(PROJECT_ROOT)/classes
+PROJECT_CLASSPATH ?= $(PROJECT_OUTPUTDIR)
+PROJECT_LISTDIR ?= $(PROJECT_CONFIGDIR)/list
+
+##############################################################################
+# External libraries
+
+# FJBG
+FJBG_HOME ?= $(PROJECT_LIBDIR)/fjbg
+FJBG_JARFILE ?= $(FJBG_HOME)/fjbg.jar
+
+# MSIL
+MSIL_HOME ?= $(PROJECT_LIBDIR)/msil
+MSIL_JARFILE ?= $(MSIL_HOME)/msil.jar
+
+# BCEL (http://jakarta.apache.org/bcel/)
+BCEL_HOME ?= $(PROJECT_LIBDIR)/bcel
+BCEL_JARFILE ?= $(BCEL_HOME)/bcel.jar
+BCEL_LICENSE ?= $(BCEL_HOME)/LICENSE
+
+# XERCES (http://xml.apache.org/xerces2-j/)
+XERCES_HOME ?= $(PROJECT_LIBDIR)/xerces
+XERCES_JARFILE ?= $(XERCES_HOME)/xercesImpl.jar
+XERCES_LICENSE ?= $(XERCES_HOME)/LICENSE
+
+##############################################################################
+# Standard tools
+
+BASENAME ?= basename
+CAT ?= cat
+CHMOD ?= chmod
+CP ?= cp
+DATE ?= date
+DIRNAME ?= dirname
+ECHO ?= echo
+FIND ?= find
+GREP ?= grep
+JAR ?= jar
+JAVA ?= java
+LN ?= ln
+M4 ?= m4
+MKDIR ?= mkdir
+NICE ?= nice
+RM ?= rm -f
+SCSH ?= scsh
+SED ?= sed
+TOUCH ?= touch
+UNIX2DOS ?= unix2dos
+WC ?= wc
+XARGS ?= xargs
+ZIP ?= zip
+
+make ?= $(MAKE) MAKELEVEL=$(MAKELEVEL) --no-print-directory
+
+##############################################################################
+# Pico compiler
+
+PICO ?= pico
+PICO_FLAGS ?= -make -source 1.4
+
+##############################################################################
+# Makefile functions
+
+RUN ?= $(ECHO) '$(1)'; $(1) || exit $$?
+READLIST ?= $(shell $(CAT) $(1) | $(GREP) -v "^\#")
+
+##############################################################################
+# Includes
+
+include $(PROJECT_SUPPORTDIR)/make/default.mk
+include $(PROJECT_SUPPORTDIR)/make/cygwin.mk
+include $(PROJECT_SUPPORTDIR)/make/exec.mk
+include $(PROJECT_SUPPORTDIR)/make/grep.mk
+include $(PROJECT_SUPPORTDIR)/make/wc.mk
+
+##############################################################################
+# Dependencies
+
+Makefile : $(ROOT)/Makefile.private
+Makefile : $(ROOT)/Makefile.config
+
+##############################################################################
+# Commands
+
+cvs-fix-perms :
+ $(strip \
+ $(FIND) . -type f -perm +a=x | \
+ $(GREP) -v '.*/bin/.*' | \
+ $(XARGS) -r $(CHMOD) a-x)
+
+.PHONY : cvs-fix-perms
+
+##############################################################################
diff --git a/Makefile.distrib b/Makefile.distrib
new file mode 100644
index 0000000000..2fabe689a9
--- /dev/null
+++ b/Makefile.distrib
@@ -0,0 +1,221 @@
+############################################################-*-Makefile-*-####
+# Project Installation and Distribution
+##############################################################################
+# $Id$
+
+# scala documents
+DOCUMENTS_ROOT = $(PROJECT_ROOT)/doc
+DOCUMENTS_FILES += $(DOCUMENTS_ROOT)/reference/reference.pdf
+DOCUMENTS_FILES += $(DOCUMENTS_ROOT)/reference/examples.pdf
+
+# scala examples
+EXAMPLES_ROOT = $(PROJECT_SOURCEDIR)/examples
+EXAMPLES_LIST += $(call READLIST, $(PROJECT_LISTDIR)/examples.lst)
+EXAMPLES_FILES = $(EXAMPLES_LIST:%=$(EXAMPLES_ROOT)/%)
+
+# emacs scala-mode
+EMACS_ROOT = $(PROJECT_ROOT)/support/emacs
+EMACS_LIST += $(call READLIST,$(PROJECT_LISTDIR)/emacs.lst)
+EMACS_FILES = $(EMACS_LIST:%=$(EMACS_ROOT)/%)
+
+# scala test
+TEST_ROOT = $(PROJECT_ROOT)/test
+TEST_LIST += $(call READLIST,$(PROJECT_LISTDIR)/test-pos.lst)
+TEST_LIST += $(call READLIST,$(PROJECT_LISTDIR)/test-neg.lst)
+TEST_LIST += $(call READLIST,$(PROJECT_LISTDIR)/test-run.lst)
+TEST_FILES = $(TEST_LIST:%=$(TEST_ROOT)/%)
+
+##############################################################################
+# beta versions
+##############################################################################
+
+INSTALL = $(ROOT)/support/scripts/install
+MIRROR = $(ROOT)/support/scripts/mirror
+
+INSTALL_VERSION = install-test
+INSTALL_PREFIX = $(ROOT)/distribs/scala-test
+INSTALL_BINDIR = $(INSTALL_PREFIX)/bin
+INSTALL_DOCDIR = $(INSTALL_PREFIX)/doc
+INSTALL_LIBDIR = $(INSTALL_PREFIX)/lib
+INSTALL_DATADIR = $(INSTALL_PREFIX)/share
+INSTALL_DATADIR_ROOT = $(INSTALL_DATADIR)/$(PROJECT_NAME)
+INSTALL_DATADIR_LIBRARY = $(INSTALL_DATADIR_ROOT)/library
+INSTALL_DATADIR_EXAMPLES = $(INSTALL_DATADIR_ROOT)/examples
+INSTALL_DATADIR_TEST = $(INSTALL_DATADIR_ROOT)/test
+INSTALL_DATADIR_EMACS = $(INSTALL_DATADIR)/emacs/site-lisp
+
+install-clean :
+ $(RM) -r $(INSTALL_PREFIX)
+
+install : $(PROJECT_JAR_ARCHIVE)
+ $(MAKE) -C $(DOCUMENTS_ROOT)/reference all
+ $(INSTALL) -m 755 -d $(INSTALL_PREFIX)
+ $(INSTALL) -m 755 -d $(INSTALL_BINDIR)
+ $(INSTALL) -m 755 $(ROOT)/bin/.scala_wrapper $(INSTALL_BINDIR)
+ @$(MAKE) SCRIPTS_PREFIX=$(INSTALL_BINDIR) scripts
+ $(INSTALL) -m 755 -d $(INSTALL_DOCDIR)
+ $(INSTALL) -m 644 $(DOCUMENTS_FILES) $(INSTALL_DOCDIR)
+ $(INSTALL) -m 755 -d $(INSTALL_LIBDIR)
+ $(INSTALL) -m 644 $(PROJECT_JAR_ARCHIVE) $(INSTALL_LIBDIR)
+ $(INSTALL) -m 644 $(BCEL_LICENSE) $(INSTALL_LIBDIR)/bcel.LICENSE
+ $(INSTALL) -m 644 $(BCEL_JARFILE) $(INSTALL_LIBDIR)/bcel.jar
+ $(INSTALL) -m 644 $(MSIL_JARFILE) $(INSTALL_LIBDIR)/msil.jar
+ $(INSTALL) -m 644 $(FJBG_JARFILE) $(INSTALL_LIBDIR)/fjbg.jar
+ $(INSTALL) -m 755 -d $(INSTALL_DATADIR)
+ $(INSTALL) -m 755 -d $(INSTALL_DATADIR_ROOT)
+ $(INSTALL) -m 755 -d $(INSTALL_DATADIR_LIBRARY)
+ $(strip $(MIRROR) -m 644 -C $(LIBRARY_ROOT) $(LIBRARY_LIST:%='%') \
+ $(INSTALL_DATADIR_LIBRARY)/$(PROJECT_NAME))
+ $(INSTALL) -m 755 -d $(INSTALL_DATADIR_EXAMPLES)
+ $(strip $(MIRROR) -m 644 -C $(EXAMPLES_ROOT) $(EXAMPLES_LIST) \
+ $(INSTALL_DATADIR_EXAMPLES))
+ $(INSTALL) -m 755 -d $(INSTALL_DATADIR)/$(PROJECT_NAME)/test
+ $(INSTALL) -m 755 -d $(INSTALL_DATADIR)/$(PROJECT_NAME)/test/bin
+ $(INSTALL) -m 755 $(ROOT)/test/bin/scala-test $(INSTALL_DATADIR_TEST)/bin
+ $(strip $(MIRROR) -m 644 -C $(TEST_ROOT) $(TEST_LIST) \
+ $(INSTALL_DATADIR_TEST))
+ $(strip $(MIRROR) -m 644 -C $(TEST_ROOT) \
+ $(shell cd $(TEST_ROOT); ls $(TEST_LIST:%.scala=%.check) 2>/dev/null) \
+ $(INSTALL_DATADIR_TEST))
+ $(strip $(MIRROR) -m 644 -C $(TEST_ROOT) \
+ $(shell cd $(TEST_ROOT); ls $(TEST_LIST:%.scala=%.flags) 2>/dev/null) \
+ $(INSTALL_DATADIR_TEST))
+ $(INSTALL) -m 755 -d $(INSTALL_DATADIR_EMACS)
+ $(strip $(MIRROR) -m 644 -C $(EMACS_ROOT) $(EMACS_LIST) \
+ $(INSTALL_DATADIR_EMACS))
+ $(INSTALL) -m 644 $(ROOT)/README $(INSTALL_PREFIX)
+ $(INSTALL) -m 644 $(ROOT)/LICENSE $(INSTALL_PREFIX)
+ $(ECHO) $(INSTALL_VERSION) > $(INSTALL_PREFIX)/VERSION
+ $(CHMOD) 644 $(INSTALL_PREFIX)/VERSION
+
+
+install-windows :
+ @if [ ! -d "$(INSTALL_PREFIX)" ]; then \
+ echo "Could not find UNIX install '$(INSTALL_PREFIX)'"; \
+ exit 1; \
+ fi
+ $(UNIX2DOS) $(INSTALL_PREFIX)/README
+ $(UNIX2DOS) $(INSTALL_PREFIX)/LICENSE
+ $(UNIX2DOS) $(INSTALL_PREFIX)/VERSION
+ $(UNIX2DOS) $(INSTALL_LIBDIR)/bcel.LICENSE
+ $(TOUCH) $(INSTALL_PREFIX)/VERSION-$(INSTALL_VERSION)
+ @root=`cd "$(INSTALL_PREFIX)"; pwd`; \
+ for file in "" $(SCRIPTS_WRAPPER_ALIASES); do \
+ if [ -z "$$file" ]; then continue; fi; \
+ echo -n "Generating $$file.bat ... "; \
+ srcfile="$(ROOT)/support/windows/scala_wrapper"; \
+ nixfile="$(INSTALL_PREFIX)/bin/$$file"; \
+ winfile="$(INSTALL_PREFIX)/bin/$$file.bat"; \
+ nixexec=`SCALA_WRAPPER_EXEC=echo $$nixfile`; \
+ winexec="$$nixexec"; \
+ winexec=`echo "$$winexec" | sed -es"#$$root#%SCALA_HOME%#g"`; \
+ winexec=`echo "$$winexec" | tr '/' '\\\\' | tr ':' ';'`; \
+ $(RM) -f "$$winfile"; \
+ ( \
+ $(CAT) "$$srcfile-header.bat"; \
+ $(ECHO) "set VERSION=$(INSTALL_VERSION)"; \
+ $(ECHO) "set COMMAND=$$winexec"; \
+ $(CAT) "$$srcfile-footer.bat"; \
+ ) | $(UNIX2DOS) >> "$$winfile"; \
+ $(RM) "$$nixfile"; \
+ echo "done"; \
+ done
+ $(RM) $(INSTALL_PREFIX)/bin/.scala_wrapper
+ $(FIND) $(INSTALL_DATADIR_LIBRARY) -type f -exec unix2dos "{}" ";"
+ $(FIND) $(INSTALL_DATADIR_EXAMPLES) -type f -exec unix2dos "{}" ";"
+ $(FIND) $(INSTALL_DATADIR_TEST) -type f -exec unix2dos "{}" ";"
+ $(FIND) $(INSTALL_DATADIR_EMACS) -type f -exec unix2dos "{}" ";"
+
+.PHONY : install
+.PHONY : install-windows
+
+##############################################################################
+
+DISTRIB_REPOSITORY = $(ROOT)/distribs
+DISTRIB_VERSION := $(shell $(DATE) -u "+%Y%m%d-%H%M%S")
+DISTRIB_NAME = $(PROJECT_NAME)-$(DISTRIB_VERSION)
+DISTRIB_PREFIX = $(DISTRIB_REPOSITORY)/$(DISTRIB_NAME)
+DISTRIB_ARCHIVE = $(DISTRIB_REPOSITORY)/$(DISTRIB_NAME).tar.gz
+
+distrib-extract :
+ @if [ ! -f "$(DISTRIB_ARCHIVE)" ]; then \
+ echo "Could not find source archive '$(DISTRIB_ARCHIVE)'"; \
+ exit 1; \
+ fi
+ @if [ -d "$(DISTRIB_PREFIX)" ]; then \
+ $(call RUN,$(RM) -rf $(DISTRIB_PREFIX)); \
+ fi
+ tar xvzf $(DISTRIB_ARCHIVE) -C $(DISTRIB_REPOSITORY)
+
+distrib-build-unix :
+ @$(MAKE) INSTALL_PREFIX=$(DISTRIB_PREFIX) \
+ INSTALL_VERSION=$(DISTRIB_VERSION) install
+ tar czf $(DISTRIB_ARCHIVE) -C $(DISTRIB_REPOSITORY) $(DISTRIB_NAME)
+
+distrib-build-windows :
+ @$(MAKE) INSTALL_PREFIX=$(DISTRIB_PREFIX) \
+ INSTALL_VERSION=$(DISTRIB_VERSION) install-windows
+ $(RM) -f $(DISTRIB_PREFIX).zip
+ cd $(DISTRIB_REPOSITORY); \
+ $(ZIP) -q -r $(DISTRIB_NAME).zip $(DISTRIB_NAME)
+
+distrib-clean :
+ $(RM) -rf $(DISTRIB_PREFIX)
+
+distrib-unix : distrib-build-unix
+distrib-unix : distrib-clean
+
+distrib-windows : DISTRIB_NAME=$(notdir $(ARGS:%.tar.gz=%))
+distrib-windows : DISTRIB_VERSION=$(DISTRIB_NAME:scala-%=%)
+distrib-windows : distrib-extract
+distrib-windows : distrib-build-windows
+distrib-windows : distrib-clean
+
+distrib-all-oses : distrib-build-unix
+distrib-all-oses : distrib-build-windows
+distrib-all-oses : distrib-clean
+
+distrib-14 :
+ @if [ -f "$(ROOT)/bin/.scala_wrapper.bak" ]; then \
+ echo "There is a backup of .scala_wrapper, maybe you should run: "; \
+ echo "make distrib-13-undo"; \
+ exit 1; \
+ fi
+ @$(MAKE) distrib-all-oses DISTRIB_VERSION=$(DISTRIB_VERSION);
+
+distrib-13-undo :
+ @$(MAKE) clean;
+ mv $(ROOT)/bin/.scala_wrapper.bak $(ROOT)/bin/.scala_wrapper
+
+distrib-13 : PATH:=/home/linuxsoft/apps/java-1.3/bin:$(PATH)
+distrib-13 :
+ @if [ -f "$(ROOT)/bin/.scala_wrapper.bak" ]; then \
+ echo "Cannot save .scala_wrapper, there is already a backup," \
+ "maybe you should run: "; \
+ echo "make distrib-13-undo"; \
+ exit 1; \
+ fi
+ mv $(ROOT)/bin/.scala_wrapper $(ROOT)/bin/.scala_wrapper.bak
+ $(SED) -e "s/-enableassertions//" $(ROOT)/bin/.scala_wrapper.bak \
+ > $(ROOT)/bin/.scala_wrapper
+ @$(MAKE) clean;
+ @$(MAKE) COMPILER_JC_FLAGS="$(COMPILER_JC_FLAGS) -target 1.3"
+ @$(MAKE) distrib-all-oses DISTRIB_VERSION=$(DISTRIB_VERSION)-jdk-1.3;
+ @$(MAKE) distrib-13-undo;
+
+distrib : distrib-14
+#distrib : distrib-13
+
+.PHONY : distrib-extract
+.PHONY : distrib-build-unix
+.PHONY : distrib-build-windows
+.PHONY : distrib-clean
+.PHONY : distrib-unix
+.PHONY : distrib-windows
+.PHONY : distrib-all-oses
+.PHONY : distrib-14
+.PHONY : distrib-13-undo
+.PHONY : distrib-13
+.PHONY : distrib
+
+##############################################################################