From 073294fbbaf752ed4f9005eb9421b7bd4f475173 Mon Sep 17 00:00:00 2001 From: paltherr Date: Fri, 14 Feb 2003 10:18:21 +0000 Subject: - Added list of compiler source files - Added Makefile --- .cvsignore | 2 + Makefile | 157 +++++++++++++++++++++++++++++++++++++++++++++++ config/list/compiler.lst | 94 ++++++++++++++++++++++++++++ 3 files changed, 253 insertions(+) create mode 100644 Makefile create mode 100644 config/list/compiler.lst 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 + +############################################################################## -- cgit v1.2.3