summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-08-11 07:59:30 +0000
committerpaltherr <paltherr@epfl.ch>2003-08-11 07:59:30 +0000
commit5893d5b55b0b1d343c56743566789007ad4cd6a6 (patch)
treea82d9a6f0e91b30f582a8278ae5c56c461933883
parent7c3f5b112308dc9d2fa8b51fab6579501588e098 (diff)
downloadscala-5893d5b55b0b1d343c56743566789007ad4cd6a6.tar.gz
scala-5893d5b55b0b1d343c56743566789007ad4cd6a6.tar.bz2
scala-5893d5b55b0b1d343c56743566789007ad4cd6a6.zip
- Added compilation of scala documentation
-rw-r--r--Makefile8
-rw-r--r--Makefile.config3
-rw-r--r--support/make/sdc.mk110
3 files changed, 121 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index c5856afe08..93abee98fd 100644
--- a/Makefile
+++ b/Makefile
@@ -87,6 +87,8 @@ LIBRARY_LIST = $(call READLIST,$(PROJECT_LISTDIR)/library.lst)
LIBRARY_SOURCES += $(LIBRARY_LIST:%=$(LIBRARY_ROOT)/%)
LIBRARY_JC_FILES += $(filter %.java,$(LIBRARY_SOURCES))
LIBRARY_SC_FILES += $(filter %.scala,$(LIBRARY_SOURCES))
+LIBRARY_SDC_FILES += $(LIBRARY_SC_FILES)
+LIBRARY_SDC_OUTPUTDIR = $(PROJECT_APIDIR)
# scala interpreter
INTERPRETER_ROOT = $(PROJECT_SOURCEDIR)/scalai
@@ -162,6 +164,7 @@ generate : .latest-generate
compiler : .latest-compiler
library : .latest-library-jc
library : .latest-library-sc
+library : .latest-library-sdc
interpreter : .latest-interpreter
scaladoc : .latest-scaladoc
dtd2scala : .latest-dtd2scala
@@ -209,6 +212,10 @@ dtd2scala : .latest-dtd2scala
@$(make) sc target=LIBRARY LIBRARY_SC_FILES='$(subst $$,\$$$$,$?)'
touch $@
+.latest-library-sdc : $(LIBRARY_SDC_FILES)
+ @$(make) sdc target=LIBRARY LIBRARY_SC_FILES='$(subst $$,\$$$$,$(LIBRARY_SC_FILES))'
+ touch $@
+
.latest-interpreter : $(INTERPRETER_JC_FILES)
@$(make) jc target=INTERPRETER INTERPRETER_JC_FILES='$?'
touch $@
@@ -292,5 +299,6 @@ $(PROJECT_JAR_ARCHIVE) :
include $(PROJECT_SUPPORTDIR)/make/jc.mk
include $(PROJECT_SUPPORTDIR)/make/jar.mk
include $(PROJECT_SUPPORTDIR)/make/sc.mk
+include $(PROJECT_SUPPORTDIR)/make/sdc.mk
##############################################################################
diff --git a/Makefile.config b/Makefile.config
index 632ceeea85..b9a2c5dcd0 100644
--- a/Makefile.config
+++ b/Makefile.config
@@ -15,12 +15,14 @@ PROJECT_NAME ?= scala
PROJECT_ROOT ?= $(ROOT)
PROJECT_BINARYDIR ?= $(PROJECT_ROOT)/bin
PROJECT_CONFIGDIR ?= $(PROJECT_ROOT)/config
+PROJECT_DOCUMENTDIR ?= $(PROJECT_ROOT)/doc
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
+PROJECT_APIDIR ?= $(PROJECT_DOCUMENTDIR)/api
##############################################################################
# External libraries
@@ -85,6 +87,7 @@ PICO_FLAGS ?= -make -source 1.4
# Scala compiler
SCALAC ?= $(PROJECT_BINARYDIR)/scalac
+SCALADOC ?= $(PROJECT_BINARYDIR)/scaladoc
##############################################################################
# Makefile functions
diff --git a/support/make/sdc.mk b/support/make/sdc.mk
new file mode 100644
index 0000000000..5c9601d790
--- /dev/null
+++ b/support/make/sdc.mk
@@ -0,0 +1,110 @@
+############################################################-*-Makefile-*-####
+# SDC - Compile Scala Documentation Files
+##############################################################################
+# $Id$
+
+##############################################################################
+# Usage
+#
+# make sdc [target=<target>] {<VARIABLE>=<value>}
+#
+##############################################################################
+# Variables
+#
+# SDC_COMPILER = compiler name, for example SCALADOC
+# $(SDC_COMPILER) = compiler command
+# $(SDC_COMPILER)_FLAGS = compiler-specific compilation flags
+# SDC_FLAGS += compilation flags
+# SDC_CLASSPATH = location of user class files
+# SDC_SOURCEPATH = location of input source files
+# SDC_BOOTCLASSPATH = location of bootstrap class files
+# SDC_EXTDIRS = location of installed extensions
+# SDC_OUTPUTDIR = directory where to place generated class files
+# SDC_ENCODING = character encoding used by source files
+# SDC_SOURCE = version of source code
+# SDC_TARGET = version of target bytecode
+# SDC_FILES += files to compile
+#
+# All variables may have target specific values which override the
+# normal value. Those values are specified by variables whose name is
+# prefixed with the target name. For example, to override the value of
+# the variable SDC_CLASSPATH with target LIBRARY, one may define the
+# variable LIBRARY_SDC_CLASSPATH.
+#
+##############################################################################
+# Examples
+#
+# Compile file "sources/scala/Predef.scala"
+#
+# make sdc SDC_FILES=sources/scala/Predef.scala
+#
+#
+# Compile the whole runtime
+#
+# make sdc target=LIBRARY
+#
+#
+# A Makefile rule that compiles all modified files from the runtime
+#
+# .latest-library : $(LIBRARY_SDC_FILES)
+# @$(MAKE) sdc target=LIBRARY LIBRARY_SDC_FILES='$?'
+# touch $@
+#
+##############################################################################
+
+##############################################################################
+# Defaults
+
+SDC_COMPILER ?= SCALADOC
+CYGWIN_PATH ?= $(1)
+CYGWIN_FILE ?= $(1)
+SCALADOC ?= scaladoc
+
+##############################################################################
+# Values
+
+sdc_COMPILER = $(call SDC_LOOKUP,SDC_COMPILER)
+sdc_compiler = $(call SDC_LOOKUP,$(sdc_COMPILER))
+sdc_compiler_flags = $(call SDC_LOOKUP,$(sdc_COMPILER)_FLAGS)
+sdc_FLAGS = $(call SDC_LOOKUP,SDC_FLAGS)
+sdc_CLASSPATH = $(call SDC_LOOKUP,SDC_CLASSPATH)
+sdc_SOURCEPATH = $(call SDC_LOOKUP,SDC_SOURCEPATH)
+sdc_BOOTCLASSPATH = $(call SDC_LOOKUP,SDC_BOOTCLASSPATH)
+sdc_EXTDIRS = $(call SDC_LOOKUP,SDC_EXTDIRS)
+sdc_OUTPUTDIR = $(call SDC_LOOKUP,SDC_OUTPUTDIR)
+sdc_ENCODING = $(call SDC_LOOKUP,SDC_ENCODING)
+sdc_SOURCE = $(call SDC_LOOKUP,SDC_SOURCE)
+sdc_TARGET = $(call SDC_LOOKUP,SDC_TARGET)
+sdc_FILES = $(call SDC_LOOKUP,SDC_FILES)
+
+##############################################################################
+# Command
+
+sdc += $(sdc_compiler)
+sdc += $(sdc_compiler_flags)
+sdc += $(sdc_FLAGS)
+sdc += $(sdc_CLASSPATH:%=-classpath $(call CYGWIN_PATH,%))
+sdc += $(sdc_SOURCEPATH:%=-sourcepath $(call CYGWIN_PATH,%))
+sdc += $(sdc_BOOTCLASSPATH:%=-bootclasspath $(call CYGWIN_PATH,%))
+sdc += $(sdc_EXTDIRS:%=-extdirs $(call CYGWIN_PATH,%))
+sdc += $(sdc_OUTPUTDIR:%=-d $(call CYGWIN_FILE,%))
+sdc += $(sdc_ENCODING:%=-encoding %)
+sdc += $(sdc_SOURCE:%=-source %)
+sdc += $(sdc_TARGET:%=-target %)
+sdc += $(sdc_FILES:%=$(call CYGWIN_FILE,%))
+
+##############################################################################
+# Functions
+
+SDC_LOOKUP = $(if $($(target)_$(1)),$($(target)_$(1)),$($(1)))
+
+##############################################################################
+# Rules
+
+sdc :
+ @[ -d "$(sdc_OUTPUTDIR)" ] || $(MKDIR) -p "$(sdc_OUTPUTDIR)"
+ $(strip $(sdc))
+
+.PHONY : sdc
+
+##############################################################################