summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-02-14 10:18:21 +0000
committerpaltherr <paltherr@epfl.ch>2003-02-14 10:18:21 +0000
commit073294fbbaf752ed4f9005eb9421b7bd4f475173 (patch)
tree3f42a962441b0a43418ca981a576d61e9edad14c
parent4177daab2f54bdb20c71f623296a8bb32616fd12 (diff)
downloadscala-073294fbbaf752ed4f9005eb9421b7bd4f475173.tar.gz
scala-073294fbbaf752ed4f9005eb9421b7bd4f475173.tar.bz2
scala-073294fbbaf752ed4f9005eb9421b7bd4f475173.zip
- Added list of compiler source files
- Added Makefile
-rw-r--r--.cvsignore2
-rw-r--r--Makefile157
-rw-r--r--config/list/compiler.lst94
3 files changed, 253 insertions, 0 deletions
diff --git a/.cvsignore b/.cvsignore
index 7cb3fc0e07..1c146d0915 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,3 +1,5 @@
+.latest-*
+Makefile.private
classes
lib
objects
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000..1405130c2a
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,157 @@
+############################################################-*-Makefile-*-####
+# Makefile for the Scala Compiler
+##############################################################################
+# $Id$
+
+##############################################################################
+# Include private stuff
+
+-include Makefile.private
+
+##############################################################################
+# Variables
+
+ROOT = .
+
+# project
+PROJECT_NAME = scala
+PROJECT_ROOT = $(ROOT)
+PROJECT_SOURCES += $(COMPILER_SOURCES)
+PROJECT_OUTPUTDIR = $(PROJECT_ROOT)/classes
+PROJECT_CLASSPATH = $(PROJECT_OUTPUTDIR)
+PROJECT_LISTDIR = $(PROJECT_ROOT)/config/list
+PROJECT_SOURCEDIR = $(PROJECT_ROOT)/sources
+
+# scala compiler
+COMPILER_ROOT = $(PROJECT_SOURCEDIR)/scalac
+COMPILER_LIST = $(call READLIST,$(PROJECT_LISTDIR)/compiler.lst)
+COMPILER_SOURCES += $(COMPILER_LIST:%=$(COMPILER_ROOT)/%)
+COMPILER_JC_COMPILER = PICO
+COMPILER_JC_CLASSPATH = $(PROJECT_CLASSPATH):$(BCEL_JARFILE):$(MSIL_JARFILE)
+
+# java compilation
+
+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
+
+# 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
+CP ?= cp
+LN ?= ln
+MKDIR ?= mkdir
+TOUCH ?= touch
+CHMOD ?= chmod
+DIRNAME ?= dirname
+BASENAME ?= basename
+DATE ?= date
+NICE ?= nice
+ZIP ?= zip
+UNIX2DOS ?= unix2dos
+
+JAVAC ?= javac
+JAVAC_FLAGS +=
+
+PICO ?= pico
+PICO_FLAGS += -make -source 1.4
+
+##############################################################################
+# Functions
+
+RUN = echo $(1); $(1) || exit $$?
+MAKE += --no-print-directory
+LOOKUP = $(if $($(source)_$(1)),$($(source)_$(1)),$($(1)))
+READLIST = $(shell cat $(1) | grep -v "^\#")
+
+##############################################################################
+# Commands
+
+all : compiler
+
+force :
+ $(RM) -f .latest-compiler
+ @$(MAKE) all
+
+clean :
+ $(RM) -f .latest-compiler
+ $(RM) -rf $(PROJECT_OUTPUTDIR)
+
+distclean : clean
+ $(RM) -f .latest-*
+
+compiler : .latest-compiler
+
+.PHONY : all
+.PHONY : force
+.PHONY : clean
+.PHONY : distclean
+.PHONY : compiler
+
+##############################################################################
+# Targets
+
+.latest-compiler : $(COMPILER_SOURCES)
+ @$(MAKE) .do-jc source=COMPILER JC_FILES='$?'
+ touch $@
+
+##############################################################################
+# JC - compile java files
+##############################################################################
+#
+# JC_COMPILER = compiler name, for example JAVAC or PICO
+# $(JC_COMPILER) = compiler command
+# $(JC_COMPILER)_FLAGS = compiler-specific compilation flags
+# JC_FLAGS += compilation flags
+# JC_OUTPUTDIR = directory for the generated class files
+# JC_CLASSPATH = class path
+# JC_FILES += files to compile
+#
+##############################################################################
+
+# setup default values
+
+JC_COMPILER ?= JAVAC
+JAVAC ?= javac
+
+# lookup actual values
+
+JC_COMPILER := $(call LOOKUP,JC_COMPILER)
+JC_compiler := $(call LOOKUP,$(JC_COMPILER))
+JC_compiler_flags := $(call LOOKUP,$(JC_COMPILER)_FLAGS)
+JC_FLAGS := $(call LOOKUP,JC_FLAGS)
+JC_OUTPUTDIR := $(call LOOKUP,JC_OUTPUTDIR)
+JC_CLASSPATH := $(call LOOKUP,JC_CLASSPATH)
+JC_FILES := $(call LOOKUP,JC_FILES)
+
+# rules
+
+.do-jc:
+ @[ -d "$(JC_OUTPUTDIR)" ] || $(MKDIR) -p "$(JC_OUTPUTDIR)"
+ $(strip $(JC_compiler) $(JC_compiler_flags) $(JC_FLAGS) \
+ $(JC_OUTPUTDIR:%=-d %) $(JC_CLASSPATH:%=-classpath %) \
+ $(JC_FILES))
+
+##############################################################################
diff --git a/config/list/compiler.lst b/config/list/compiler.lst
new file mode 100644
index 0000000000..73589ee7cc
--- /dev/null
+++ b/config/list/compiler.lst
@@ -0,0 +1,94 @@
+################################################################-*-text-*-####
+# scala compiler source files (paths are relative to ./sources/scalac)
+##############################################################################
+# $Id$
+
+ApplicationError.java
+CompilerCommand.java
+Global.java
+Main.java
+Phase.java
+PhaseDescriptor.java
+PhaseRepository.java
+Unit.java
+
+ast/parser/Parser.java
+ast/parser/ParserPhase.java
+ast/parser/Scanner.java
+ast/parser/SourceRepresentation.java
+ast/parser/Sourcefile.java
+ast/parser/TokenData.java
+ast/parser/Tokens.java
+ast/AbstractTreeCopyFactory.java
+ast/LazyTreeFactory.java
+ast/Transformer.java
+ast/Traverser.java
+ast/Tree.java
+ast/TreeCopyFactory.java
+ast/TreeCreator.java
+ast/TreeFactory.java
+ast/TreeGen.java
+ast/TreeInfo.java
+ast/TreeList.java
+ast/printer/HTMLTreePrinter.java
+ast/printer/TextTreePrinter.java
+ast/printer/TreePrinter.java
+
+checkers/CheckOwners.java
+checkers/CheckSymbols.java
+checkers/CheckTypes.java
+checkers/Checker.java
+
+symtab/classfile/AttributeParser.java
+symtab/classfile/ClassParser.java
+symtab/classfile/ClassfileConstants.java
+symtab/classfile/ClassfileParser.java
+symtab/classfile/ConstantPool.java
+symtab/classfile/JavaTypeCreator.java
+symtab/classfile/JavaTypeFactory.java
+symtab/classfile/PackageParser.java
+symtab/classfile/Signatures.java
+symtab/Definitions.java
+symtab/Kinds.java
+symtab/Modifiers.java
+symtab/NameMangler.java
+symtab/Scope.java
+symtab/SourceCompleter.java
+symtab/SymSet.java
+symtab/Symbol.java
+symtab/Type.java
+symtab/TypeTags.java
+
+transformer/LambdaLift.java
+transformer/LambdaLiftPhase.java
+transformer/OwnerTransformer.java
+transformer/UnCurry.java
+transformer/UnCurryPhase.java
+
+typechecker/Analyzer.java
+typechecker/AnalyzerPhase.java
+typechecker/Context.java
+typechecker/DeSugarize.java
+typechecker/ImportList.java
+typechecker/Infer.java
+typechecker/RefCheck.java
+typechecker/RefCheckPhase.java
+
+util/AbstractFile.java
+util/AbstractFileReader.java
+util/ArrayApply.java
+util/ClassPath.java
+util/Debug.java
+util/FreshNameCreator.java
+util/Name.java
+util/NameTransformer.java
+util/Names.java
+util/OptionParser.java
+util/Position.java
+util/PrefixMatcher.java
+util/Reporter.java
+util/SourceRepresentation.java
+util/Strings.java
+util/UniqueID.java
+
+##############################################################################