diff options
author | paltherr <paltherr@epfl.ch> | 2004-07-20 17:42:31 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2004-07-20 17:42:31 +0000 |
commit | 1d90bcabca92c8e257fe8e4d55f970e2e224b7f8 (patch) | |
tree | 1626752062f0e03293b28b00439455581663467b /Makefile | |
parent | 2136372ed739219b60a2777d1da8bb18e5d6b1c1 (diff) | |
download | scala-1d90bcabca92c8e257fe8e4d55f970e2e224b7f8.tar.gz scala-1d90bcabca92c8e257fe8e4d55f970e2e224b7f8.tar.bz2 scala-1d90bcabca92c8e257fe8e4d55f970e2e224b7f8.zip |
- Reorganized the whole Makefile
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 762 |
1 files changed, 407 insertions, 355 deletions
@@ -13,185 +13,23 @@ include $(ROOT)/Makefile.import ############################################################################## # Variables -# project sources -PROJECT_SOURCES += $(LAMPLIB_SOURCES) -PROJECT_SOURCES += $(META_SOURCES) -PROJECT_SOURCES += $(UTIL_SOURCES) -PROJECT_SOURCES += $(SCALAC_SOURCES) -PROJECT_SOURCES += $(LIBRARY_SOURCES) -PROJECT_SOURCES += $(SCALAI_SOURCES) -PROJECT_SOURCES += $(SCALADOC_SOURCES) -PROJECT_SOURCES += $(SCALAP_SOURCES) -PROJECT_SOURCES += $(DTD2SCALA_SOURCES) -PROJECT_SOURCES += $(SCALA4ANT_SOURCES) -PROJECT_SOURCES += $(SCALATEST_SOURCES) - -# scala scripts wrapper -SCRIPTS_PREFIX = $(PROJECT_BINARYDIR) -SCRIPTS_WRAPPER = $(SCRIPTS_PREFIX)/.scala_wrapper -SCRIPTS_WRAPPER_LINKS += $(SCRIPTS_WRAPPER_ALIASES:%=$(SCRIPTS_PREFIX)/%) -SCRIPTS_WRAPPER_ALIASES += scala -SCRIPTS_WRAPPER_ALIASES += scala-debug -SCRIPTS_WRAPPER_ALIASES += scala-info -SCRIPTS_WRAPPER_ALIASES += scalac -SCRIPTS_WRAPPER_ALIASES += scalac-debug -SCRIPTS_WRAPPER_ALIASES += scaladoc -SCRIPTS_WRAPPER_ALIASES += scaladoc-debug -SCRIPTS_WRAPPER_ALIASES += scalarun -SCRIPTS_WRAPPER_ALIASES += scalarun-debug -SCRIPTS_WRAPPER_ALIASES += scalaint -SCRIPTS_WRAPPER_ALIASES += scalaint-debug -SCRIPTS_WRAPPER_ALIASES += dtd2scala -SCRIPTS_WRAPPER_ALIASES += scalap -SCRIPTS_WRAPPER_ALIASES += scalatest -SCRIPTS_WRAPPER_MACRO = -es@{\#$(1)\#}@'"$(MACRO_$(1):$(INSTALL_PREFIX)/%=$$PREFIX/%)"'@g - -# automatic generation of Function<n>.java and Tuple<n>.scala files -FUNCTION_PREFIX = $(LIBRARY_ROOT) -FUNCTION_FILES += $(filter $(FUNCTION_PREFIX)/Function%.java,$(LIBRARY_SOURCES)) -FUNCTION_TEMPLATE = $(FUNCTION_PREFIX)/Function.java.tmpl - -TUPLE_PREFIX = $(LIBRARY_ROOT) -TUPLE_FILES += $(filter $(TUPLE_PREFIX)/Tuple%.scala,$(LIBRARY_SOURCES)) -TUPLE_TEMPLATE = $(TUPLE_PREFIX)/Tuple.scala.tmpl - -# lamp library -LAMPLIB_ROOT = $(PROJECT_SOURCEDIR)/ch/epfl/lamp -LAMPLIB_LIST += $(call READLIST,$(PROJECT_LISTDIR)/lamplib.lst) -LAMPLIB_SOURCES += $(LAMPLIB_LIST:%=$(LAMPLIB_ROOT)/%) -LAMPLIB_JC_FILES += $(LAMPLIB_SOURCES) - -# meta programming -META_ROOT = $(PROJECT_SOURCEDIR)/meta -META_LIST += $(call READLIST,$(PROJECT_LISTDIR)/meta.lst) -META_SOURCES += $(META_LIST:%=$(META_ROOT)/%) -META_JC_FILES += $(META_SOURCES) - -# scala tools util -UTIL_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/util -UTIL_LIST += $(call READLIST,$(PROJECT_LISTDIR)/util.lst) -UTIL_SOURCES += $(UTIL_LIST:%=$(UTIL_ROOT)/%) -UTIL_JC_FILES += $(filter %.java,$(UTIL_SOURCES)) -UTIL_SC_FILES += $(filter %.scala,$(UTIL_SOURCES)) -UTIL_SC_BOOTCLASSPATH = $(LIBRARY_SC_BOOTCLASSPATH) -UTIL_SCALAC = $(LIBRARY_SCALAC) - -# scala compiler -SCALAC_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/scalac -SCALAC_LIST += $(call READLIST,$(PROJECT_LISTDIR)/scalac.lst) -SCALAC_SOURCES += $(SCALAC_LIST:%=$(SCALAC_ROOT)/%) -SCALAC_JC_FILES += $(filter %.java,$(SCALAC_SOURCES)) -SCALAC_JC_CLASSPATH = $(PROJECT_CLASSPATH):$(MSIL_JARFILE):$(FJBG_JARFILE) -SCALAC_SC_FILES += $(filter %.scala,$(SCALAC_SOURCES)) -SCALAC_SC_CLASSPATH = $(SCALAC_JC_CLASSPATH) -SCALAC_SC_BOOTCLASSPATH = $(LIBRARY_SC_BOOTCLASSPATH) -SCALAC_SCALAC = $(LIBRARY_SCALAC) - -# scala library -LIBRARY_ROOT = $(PROJECT_SOURCEDIR)/scala -LIBRARY_LIST += $(call READLIST,$(PROJECT_LISTDIR)/library.lst) -LIBRARY_MSIL_LIST += $(call READLIST,$(PROJECT_LISTDIR)/library-msil.lst) -LIBRARY_SOURCES += $(LIBRARY_LIST:%=$(LIBRARY_ROOT)/%) -LIBRARY_MSIL_SOURCES += $(LIBRARY_MSIL_LIST:%=$(LIBRARY_ROOT)/%) -LIBRARY_JC_FILES += $(filter %.java,$(LIBRARY_SOURCES)) -LIBRARY_JC_FLAGS += $(JC_FLAGS) -scala-hack -LIBRARY_SC_FILES += $(filter %.scala,$(LIBRARY_SOURCES)) -LIBRARY_MSIL_SC_FILES += $(filter %.scala,$(LIBRARY_MSIL_SOURCES)) -LIBRARY_SC_BOOTCLASSPATH = $(PROJECT_OUTPUTDIR):$(PROJECT_SOURCEDIR):$(JRE_JARFILE) -LIBRARY_SDC_FLAGS += -windowtitle "Scala Library Documentation" -LIBRARY_SDC_FLAGS += -doctitle "Scala<br/>$(PROJECT_VERSION)" -LIBRARY_SDC_FILES += $(LIBRARY_SC_FILES) -LIBRARY_SDC_OUTPUTDIR = $(PROJECT_APIDOCDIR) -LIBRARY_JAR_ARCHIVE = $(PROJECT_LIBRARYDIR)/$(PROJECT_NAME).jar -LIBRARY_JAR_INPUTDIR = $(PROJECT_OUTPUTDIR) -LIBRARY_JAR_FILES += scala -LIBRARY_SCALAC = $(PROJECT_BOOTSTRAPDIR)/bin/scalac - -# scala interpreter -SCALAI_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/scalai -SCALAI_LIST += $(call READLIST,$(PROJECT_LISTDIR)/scalai.lst) -SCALAI_SOURCES += $(SCALAI_LIST:%=$(SCALAI_ROOT)/%) -SCALAI_JC_FILES = $(SCALAI_SOURCES) +# command and target prefix +LATEST = $(PROJECT_LATEST_PREFIX) +prefix ?= +latest = $(LATEST)$(prefix) -# scaladoc -SCALADOC_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/scaladoc -SCALADOC_LIST += $(call READLIST,$(PROJECT_LISTDIR)/scaladoc.lst) -SCALADOC_SOURCES += $(SCALADOC_LIST:%=$(SCALADOC_ROOT)/%) -SCALADOC_JC_FILES += $(filter %.java,$(SCALADOC_SOURCES)) -SCALADOC_SC_FILES += $(filter %.scala,$(SCALADOC_SOURCES)) -SCALADOC_RSRC_LIST += resources/script.js -SCALADOC_RSRC_LIST += resources/style.css -SCALADOC_RSRC_LIST += resources/xhtml-lat1.ent -SCALADOC_RSRC_LIST += resources/xhtml-special.ent -SCALADOC_RSRC_LIST += resources/xhtml-symbol.ent -SCALADOC_RSRC_LIST += resources/xhtml1-transitional.dtd -SCALADOC_RSRC_FILES += $(SCALADOC_RSRC_LIST:%=$(SCALADOC_ROOT)/%) -SCALADOC_RSRC_OUTPUTDIR = $(SCALADOC_ROOT:$(PROJECT_SOURCEDIR)/%=$(PROJECT_OUTPUTDIR)/%) - -# scalap -SCALAP_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/scalap -SCALAP_LIST += $(call READLIST,$(PROJECT_LISTDIR)/scalap.lst) -SCALAP_SOURCES += $(SCALAP_LIST:%=$(SCALAP_ROOT)/%) -SCALAP_SC_FILES += $(SCALAP_SOURCES) - -# dtd2scala -DTD2SCALA_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/dtd2scala -DTD2SCALA_LIST += $(call READLIST,$(PROJECT_LISTDIR)/dtd2scala.lst) -DTD2SCALA_SOURCES += $(DTD2SCALA_LIST:%=$(DTD2SCALA_ROOT)/%) -DTD2SCALA_SC_FILES += $(filter %.scala,$(DTD2SCALA_SOURCES)) -DTD2SCALA_RSRC_LIST += $(filter %.xml,$(DTD2SCALA_LIST)) -DTD2SCALA_RSRC_FILES += $(filter %.xml,$(DTD2SCALA_SOURCES)) -DTD2SCALA_RSRC_OUTPUTDIR = $(DTD2SCALA_ROOT:$(PROJECT_SOURCEDIR)/%=$(PROJECT_OUTPUTDIR)/%) - -# servletEngine -SERVLETENGINE_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/servletEngine -SERVLETENGINE_LIST += $(call READLIST,$(PROJECT_LISTDIR)/servletEngine.lst) -SERVLETENGINE_SOURCES += $(SERVLETENGINE_LIST:%=$(SERVLETENGINE_ROOT)/%) -SERVLETENGINE_SC_FILES += $(SERVLETENGINE_SOURCES) -SERVLETENGINE_SC_CLASSPATH = $(PROJECT_CLASSPATH) - -# scala ant tasks -SCALA4ANT_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/scala4ant -SCALA4ANT_LIST += $(call READLIST,$(PROJECT_LISTDIR)/scala4ant.lst) -SCALA4ANT_SOURCES += $(SCALA4ANT_LIST:%=$(SCALA4ANT_ROOT)/%) -SCALA4ANT_SC_FILES += $(SCALA4ANT_SOURCES) -SCALA4ANT_SC_CLASSPATH = $(PROJECT_CLASSPATH):$(ANT_JARFILE) - - - -# scalatest -SCALATEST_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/scalatest -SCALATEST_LIST += $(call READLIST,$(PROJECT_LISTDIR)/scalatest.lst) -SCALATEST_SOURCES += $(SCALATEST_LIST:%=$(SCALATEST_ROOT)/%) -SCALATEST_JC_FILES += $(SCALATEST_SOURCES) - -# tools archive -TOOLS_NAME = tools -TOOLS_JAR_ARCHIVE = $(PROJECT_LIBRARYDIR)/$(TOOLS_NAME).jar -TOOLS_JAR_INPUTDIR = $(PROJECT_OUTPUTDIR) -TOOLS_JAR_FILES += ch -TOOLS_JAR_FILES += scala/tools/dtd2scala -TOOLS_JAR_FILES += scala/tools/scala4ant -TOOLS_JAR_FILES += scala/tools/scalac -TOOLS_JAR_FILES += scala/tools/scaladoc -TOOLS_JAR_FILES += scala/tools/scalai -TOOLS_JAR_FILES += scala/tools/scalap -TOOLS_JAR_FILES += scala/tools/scalatest -TOOLS_JAR_FILES += scala/tools/util -TOOLS_JAR_FILES += scalac - -# java compilation +# java compilation defaults JC_COMPILER = PICO JC_OUTPUTDIR = $(PROJECT_OUTPUTDIR) JC_CLASSPATH = $(PROJECT_CLASSPATH) -# scala compilation +# scala compilation defaults SC_COMPILER = SCALAC -SC_OUTPUTDIR = $(PROJECT_OUTPUTDIR) -SC_CLASSPATH = $(PROJECT_OUTPUTDIR) +SC_OUTPUTDIR = $(JC_OUTPUTDIR) +SC_CLASSPATH = $(JC_CLASSPATH) ############################################################################## -# Commands +# Commands - global all : sources all : bootstrap @@ -200,17 +38,15 @@ all : scalai all : scaladoc all : scalap all : dtd2scala -all : servletEngine all : scala4ant all : scalatest +all : servlet force : @$(make) all fastclean : - $(RM) .latest-* - @if [ -f .generated ]; then $(call RUN,$(RM) `$(CAT) .generated`); fi - $(RM) .generated + $(RM) $(LATEST)* clean : $(RM) -r $(PROJECT_APIDOCDIR) @@ -218,69 +54,65 @@ clean : $(RM) -r $(PROJECT_OUTPUTDIR) $(RM) -r $(PROJECT_BOOTSTRAPDIR) -distclean : - $(RM) $(LIBRARY_JAR_ARCHIVE) - $(RM) $(TOOLS_JAR_ARCHIVE) - $(RM) $(SCRIPTS_WRAPPER_LINKS) - $(RM) $(SCRIPTS_WRAPPER) - -sources : lamplib -sources : meta -sources : generate - -system : scripts -system : lamplib -system : library -system : util -system : scalac - -lamplib : .latest-$(boot)lamplib-jc -meta : .latest-meta-jc -generate : .latest-generate -bootstrap : .latest-bootstrap -scripts : $(SCRIPTS_WRAPPER_LINKS) -library : .latest-$(boot)library-jc -library : .latest-$(boot)library-sc -library-msil : .latest-$(boot)library-msil-sc -util : .latest-$(boot)util-jc -util : .latest-$(boot)util-sc -scalac : .latest-$(boot)scalac-jc -scalac : .latest-$(boot)scalac-sc -scalai : .latest-scalai-jc -scaladoc : .latest-scaladoc-jc -scaladoc : .latest-scaladoc-sc -scaladoc : .latest-scaladoc-rsrc -scalap : .latest-scalap-sc -dtd2scala : .latest-dtd2scala-sc -dtd2scala : .latest-dtd2scala-rsrc -servletEngine : .latest-servletEngine-sc -scala4ant : .latest-scala4ant-sc -scalatest : .latest-scalatest-jc -boottest : .latest-boottest -library-doc : .latest-library-sdc - -.PHONY : sources -.PHONY : system -.PHONY : lamplib -.PHONY : meta -.PHONY : generate -.PHONY : bootstrap -.PHONY : scripts -.PHONY : util -.PHONY : scalac -.PHONY : library -.PHONY : scalai -.PHONY : scaladoc -.PHONY : scalap -.PHONY : dtd2scala -.PHONY : servletEngine -.PHONY : scala4ant -.PHONY : scalatest -.PHONY : boottest -.PHONY : library-doc +############################################################################## +# Commands - project building + +bootstrap : $(LATEST)bootstrap +boottest : $(LATEST)boottest + +$(prefix)sources : $(prefix)lamplib +$(prefix)sources : $(prefix)meta + +$(prefix)system : $(prefix)scripts +$(prefix)system : $(prefix)lamplib +$(prefix)system : $(prefix)library +$(prefix)system : $(prefix)util +$(prefix)system : $(prefix)scalac + +$(prefix)scripts : $(latest)scripts +$(prefix)lamplib : $(latest)lamplib-jc +$(prefix)meta : $(latest)meta-jc +$(prefix)library : $(latest)library-jc +$(prefix)library : $(latest)library-sc +$(prefix)library-msil : $(latest)library-msil-sc +$(prefix)library-doc : $(latest)library-sdc +$(prefix)util : $(latest)util-jc +$(prefix)util : $(latest)util-sc +$(prefix)scalac : $(latest)scalac-jc +$(prefix)scalac : $(latest)scalac-sc +$(prefix)scalai : $(latest)scalai-jc +$(prefix)scaladoc : $(latest)scaladoc-jc +$(prefix)scaladoc : $(latest)scaladoc-sc +$(prefix)scaladoc : $(latest)scaladoc-rsrc +$(prefix)scalap : $(latest)scalap-sc +$(prefix)dtd2scala : $(latest)dtd2scala-sc +$(prefix)dtd2scala : $(latest)dtd2scala-rsrc +$(prefix)scala4ant : $(latest)scala4ant-sc +$(prefix)scalatest : $(latest)scalatest-jc +$(prefix)servlet : $(latest)servlet-sc + +.PHONY : bootstrap +.PHONY : boottest +.PHONY : $(prefix)sources +.PHONY : $(prefix)system +.PHONY : $(prefix)scripts +.PHONY : $(prefix)lamplib +.PHONY : $(prefix)meta +.PHONY : $(prefix)library +.PHONY : $(prefix)library-msil +.PHONY : $(prefix)library-doc +.PHONY : $(prefix)util +.PHONY : $(prefix)scalac +.PHONY : $(prefix)scalai +.PHONY : $(prefix)scaladoc +.PHONY : $(prefix)scalap +.PHONY : $(prefix)dtd2scala +.PHONY : $(prefix)scala4ant +.PHONY : $(prefix)scalatest +.PHONY : $(prefix)servlet ############################################################################## -# Commands - Version management +# Commands - version management version-set : @if [ -z "$(VERSION)" ]; then \ @@ -315,202 +147,422 @@ cvs-fix-perms : .PHONY : cvs-fix-perms ############################################################################## -# Targets +# Targets - bootstraping -.latest%lamplib-jc : $(LAMPLIB_JC_FILES) - @$(make) jc target=LAMPLIB LAMPLIB_JC_FILES='$?' +$(LATEST)bootstrap : + @$(make) bootstrap-system; touch $@ -.latest-meta-jc : $(META_JC_FILES) - @$(make) jc target=META META_JC_FILES='$?' - $(RM) .latest-*scalac-jc - $(RM) .latest-*scalac-sc - $(RM) .latest-*library-jc - $(RM) .latest-*library-sc +$(LATEST)boottest : + @$(make) boottest-system; touch $@ -.latest-generate : .latest-meta-jc - @if [ -f .generated ]; then $(call RUN,$(RM) `$(CAT) .generated`); fi - $(strip $(JAVA) -cp $(JC_OUTPUTDIR) \ - meta.GenerateAll $(PROJECT_SOURCEDIR) .generated) - touch $@ +ifeq ($(prefix),) -.latest-bootstrap : - $(MKDIR) -p $(PROJECT_BOOTSTRAPDIR) - $(MKDIR) -p $(PROJECT_BOOTSTRAPDIR)/bin - $(CP) $(SCRIPTS_WRAPPER).tmpl $(PROJECT_BOOTSTRAPDIR)/bin/ +bootstrap-% \ +$(LATEST)bootstrap-% : @$(make) \ INSTALL_PREFIX=$(PROJECT_BOOTSTRAPDIR) \ - PROJECT_BINARYDIR=$(PROJECT_BOOTSTRAPDIR)/bin \ - PROJECT_OUTPUTDIR=$(PROJECT_BOOTSTRAPDIR)/classes \ + SCRIPTS_PREFIX=$(PROJECT_BOOTSTRAPDIR)/bin \ + JC_OUTPUTDIR=$(PROJECT_BOOTSTRAPDIR)/classes \ + JC_CLASSPATH=$(PROJECT_BOOTSTRAPDIR)/classes \ LIBRARY_SCALAC=$(BOOTSTRAP_SCALAC) \ - boot="bootstrap-" system; - touch $@ + prefix="bootstrap-" $@; -.latest-boottest : - $(MKDIR) -p $(PROJECT_BOOTTESTDIR) - $(MKDIR) -p $(PROJECT_BOOTTESTDIR)/bin - $(CP) $(SCRIPTS_WRAPPER).tmpl $(PROJECT_BOOTTESTDIR)/bin/ +boottest-% : +$(LATEST)boottest-% : @$(make) \ INSTALL_PREFIX=$(PROJECT_BOOTTESTDIR) \ - PROJECT_BINARYDIR=$(PROJECT_BOOTTESTDIR)/bin \ - PROJECT_OUTPUTDIR=$(PROJECT_BOOTTESTDIR)/classes \ + SCRIPTS_PREFIX=$(PROJECT_BOOTTESTDIR)/bin \ + JC_OUTPUTDIR=$(PROJECT_BOOTSTRAPDIR)/classes \ + JC_CLASSPATH=$(PROJECT_BOOTSTRAPDIR)/classes \ LIBRARY_SCALAC=$(PROJECT_BINARYDIR)/scalac \ - boot="boottest-" system; + prefix="boottest-" $@; touch $@ -.latest%util-jc : $(UTIL_JC_FILES) - @$(make) jc target=UTIL UTIL_JC_FILES='$?' - touch $@ +endif -.latest%util-sc : $(UTIL_SC_FILES) - @$(make) sc target=UTIL UTIL_SC_FILES='$?' +############################################################################## +# Targets - scala scripts + +SCRIPTS_PREFIX = $(PROJECT_BINARYDIR) +SCRIPTS_TEMPLATE_NAME = $(SCRIPTS_WRAPPER_NAME).tmpl +SCRIPTS_TEMPLATE_FILE = $(PROJECT_BINARYDIR)/$(SCRIPTS_TEMPLATE_NAME) +SCRIPTS_WRAPPER_NAME = .scala_wrapper +SCRIPTS_WRAPPER_FILE = $(SCRIPTS_PREFIX)/$(SCRIPTS_WRAPPER_NAME) +SCRIPTS_ALIASES_NAMES += scala +SCRIPTS_ALIASES_NAMES += scala-debug +SCRIPTS_ALIASES_NAMES += scala-info +SCRIPTS_ALIASES_NAMES += scalac +SCRIPTS_ALIASES_NAMES += scalac-debug +SCRIPTS_ALIASES_NAMES += scaladoc +SCRIPTS_ALIASES_NAMES += scaladoc-debug +SCRIPTS_ALIASES_NAMES += scalarun +SCRIPTS_ALIASES_NAMES += scalarun-debug +SCRIPTS_ALIASES_NAMES += scalaint +SCRIPTS_ALIASES_NAMES += scalaint-debug +SCRIPTS_ALIASES_NAMES += dtd2scala +SCRIPTS_ALIASES_NAMES += scalap +SCRIPTS_ALIASES_NAMES += scalatest +SCRIPTS_ALIASES_FILES += $(SCRIPTS_ALIASES_NAMES:%=$(SCRIPTS_PREFIX)/%) +SCRIPTS_MACRO = -es@{\#$(1)\#}@'"$(MACRO_$(1):$(INSTALL_PREFIX)/%=$$PREFIX/%)"'@g + +distclean : distclean.scripts +distclean.scripts : + $(RM) $(SCRIPTS_ALIASES_FILES) + $(RM) $(SCRIPTS_WRAPPER_FILE) + +$(latest)scripts : $(SCRIPTS_ALIASES_FILES) touch $@ -.latest%scalac-jc : $(SCALAC_JC_FILES) - @$(make) jc target=SCALAC SCALAC_JC_FILES='$?' +$(SCRIPTS_ALIASES_FILES): $(SCRIPTS_WRAPPER_FILE) + @if [ ! -h $@ ]; then \ + $(call RUN,$(LN) -s $(notdir $(SCRIPTS_WRAPPER_FILE)) $@); \ + fi + +$(SCRIPTS_WRAPPER_FILE) : INSTALL_PREFIX ?= $(PROJECT_ROOT) +$(SCRIPTS_WRAPPER_FILE) : MACRO_VERSION ?= $(PROJECT_VERSION) +$(SCRIPTS_WRAPPER_FILE) : MACRO_RUNTIME_SOURCES ?= $(PROJECT_SOURCEDIR) +$(SCRIPTS_WRAPPER_FILE) : MACRO_RUNTIME_CLASSES ?= $(JC_OUTPUTDIR) +$(SCRIPTS_WRAPPER_FILE) : MACRO_TOOLS_CLASSES ?= $(JC_OUTPUTDIR) +$(SCRIPTS_WRAPPER_FILE) : MACRO_FJBG_CLASSES ?= $(FJBG_JARFILE) +$(SCRIPTS_WRAPPER_FILE) : MACRO_MSIL_CLASSES ?= $(MSIL_JARFILE) +$(SCRIPTS_WRAPPER_FILE) : MACRO_JAVA_ARGS ?= -enableassertions +$(SCRIPTS_WRAPPER_FILE) : $(VERSION_FILE) +$(SCRIPTS_WRAPPER_FILE) : $(PROJECT_ROOT)/Makefile +$(SCRIPTS_WRAPPER_FILE) : $(PROJECT_ROOT)/Makefile.config +$(SCRIPTS_WRAPPER_FILE) : $(PROJECT_ROOT)/Makefile.import +$(SCRIPTS_WRAPPER_FILE) : $(PROJECT_ROOT)/Makefile.private +$(SCRIPTS_WRAPPER_FILE) : $(SCRIPTS_TEMPLATE_FILE) + @[ -d $(@D) ] || $(call RUN,$(MKDIR) -p $(@D)) + @[ -e $@ ] || $(call RUN,$(RM) $@) + @$(ECHO) "Generating file $@" + @$(SED) \ + $(call SCRIPTS_MACRO,VERSION) \ + $(call SCRIPTS_MACRO,RUNTIME_SOURCES) \ + $(call SCRIPTS_MACRO,RUNTIME_CLASSES) \ + $(call SCRIPTS_MACRO,TOOLS_CLASSES) \ + $(call SCRIPTS_MACRO,FJBG_CLASSES) \ + $(call SCRIPTS_MACRO,MSIL_CLASSES) \ + $(call SCRIPTS_MACRO,JAVA_ARGS) \ + $(SCRIPTS_TEMPLATE_FILE) > $@ + @macros=`$(SED) -n -es'@.*{#\(.*\)#}.*@\1@p' < $@`; \ + if [ -n "$$macros" ]; then \ + $(ECHO) "error: there are undefined macros: $$macros"; \ + $(RM) $@; \ + exit 1; \ + fi; + $(CHMOD) 555 $@ + +############################################################################## +# Targets - lamp library + +PROJECT_SOURCES += $(LAMPLIB_SOURCES) +LAMPLIB_ROOT = $(PROJECT_SOURCEDIR)/ch/epfl/lamp +LAMPLIB_LIST += $(call READLIST,$(PROJECT_LISTDIR)/lamplib.lst) +LAMPLIB_SOURCES += $(LAMPLIB_LIST:%=$(LAMPLIB_ROOT)/%) +LAMPLIB_JC_FILES += $(LAMPLIB_SOURCES) + +$(latest)lamplib-jc : $(LAMPLIB_JC_FILES) + @$(make) jc target=LAMPLIB LAMPLIB_JC_FILES='$?' touch $@ -.latest%scalac-sc : $(SCALAC_SC_FILES) - @$(make) sc target=SCALAC SCALAC_SC_FILES='$?' +############################################################################## +# Targets - meta library + +PROJECT_SOURCES += $(META_SOURCES) +META_ROOT = $(PROJECT_SOURCEDIR)/meta +META_LIST += $(call READLIST,$(PROJECT_LISTDIR)/meta.lst) +META_SOURCES += $(META_LIST:%=$(META_ROOT)/%) +META_JC_FILES += $(META_SOURCES) + +$(latest)meta-jc : $(META_JC_FILES) + @$(make) jc target=META META_JC_FILES='$?' touch $@ -.latest%library-jc : $(LIBRARY_JC_FILES) +############################################################################## +# Targets - scala library + +PROJECT_SOURCES += $(LIBRARY_SOURCES) +LIBRARY_ROOT = $(PROJECT_SOURCEDIR)/scala +LIBRARY_LIST += $(call READLIST,$(PROJECT_LISTDIR)/library.lst) +LIBRARY_MSIL_LIST += $(call READLIST,$(PROJECT_LISTDIR)/library-msil.lst) +LIBRARY_SOURCES += $(LIBRARY_LIST:%=$(LIBRARY_ROOT)/%) +LIBRARY_MSIL_SOURCES += $(LIBRARY_MSIL_LIST:%=$(LIBRARY_ROOT)/%) +LIBRARY_JC_FILES += $(filter %.java,$(LIBRARY_SOURCES)) +LIBRARY_JC_FLAGS += $(JC_FLAGS) -scala-hack +LIBRARY_SC_FILES += $(filter %.scala,$(LIBRARY_SOURCES)) +LIBRARY_MSIL_SC_FILES += $(filter %.scala,$(LIBRARY_MSIL_SOURCES)) +LIBRARY_SC_BOOTCLASSPATH = $(PROJECT_OUTPUTDIR):$(PROJECT_SOURCEDIR):$(JRE_JARFILE) +LIBRARY_SDC_FLAGS += -windowtitle "Scala Library Documentation" +LIBRARY_SDC_FLAGS += -doctitle "Scala<br/>$(PROJECT_VERSION)" +LIBRARY_SDC_FILES += $(LIBRARY_SC_FILES) +LIBRARY_SDC_OUTPUTDIR = $(PROJECT_APIDOCDIR) +LIBRARY_JAR_ARCHIVE = $(PROJECT_LIBRARYDIR)/$(PROJECT_NAME).jar +LIBRARY_JAR_INPUTDIR = $(PROJECT_OUTPUTDIR) +LIBRARY_JAR_FILES += scala +LIBRARY_SCALAC = $(PROJECT_BOOTSTRAPDIR)/bin/scalac + +distclean : distclean.library +distclean.library : + $(RM) $(LIBRARY_JAR_ARCHIVE) + +$(latest)library-jc : $(LIBRARY_JC_FILES) @$(make) jc target=LIBRARY LIBRARY_JC_FILES='$(subst $$,$$$$,$?)' touch $@ -.latest%library-sc : $(LIBRARY_SC_FILES) +$(latest)library-sc : $(LIBRARY_SC_FILES) @$(make) sc target=LIBRARY LIBRARY_SC_FILES='$(subst $$,$$$$,$?)' touch $@ -.latest-$(boot)library-msil-sc : $(LIBRARY_MSIL_SC_FILES) +$(latest)library-msil-sc: $(LIBRARY_MSIL_SC_FILES) @$(make) sc target=LIBRARY_MSIL SC_TARGET="msil"\ LIBRARY_SCALAC=$(PROJECT_BINARYDIR)/scalac \ SC_FLAGS="-uniqid -r $(PROJECT_LIBRARYDIR) -o scalalibx -g" \ LIBRARY_MSIL_SC_FILES='$(subst $$,$$$$,$?)' touch $@ -.latest-library-sdc : $(LIBRARY_SDC_FILES) +$(latest)library-sdc : $(LIBRARY_SDC_FILES) @$(make) sdc target=LIBRARY touch $@ -.latest-scalai-jc : $(SCALAI_JC_FILES) +$(LIBRARY_JAR_ARCHIVE) : $(LATEST)library-jc +$(LIBRARY_JAR_ARCHIVE) : $(LATEST)library-sc +$(LIBRARY_JAR_ARCHIVE) : + $(MV) $(PROJECT_OUTPUTDIR)/scala/tools $(PROJECT_OUTPUTDIR)/scala.tools + @$(make) jar target=LIBRARY + $(MV) $(PROJECT_OUTPUTDIR)/scala.tools $(PROJECT_OUTPUTDIR)/scala/tools + +############################################################################## +# Targets - scala tools - util + +PROJECT_SOURCES += $(UTIL_SOURCES) +UTIL_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/util +UTIL_LIST += $(call READLIST,$(PROJECT_LISTDIR)/util.lst) +UTIL_SOURCES += $(UTIL_LIST:%=$(UTIL_ROOT)/%) +UTIL_JC_FILES += $(filter %.java,$(UTIL_SOURCES)) +UTIL_SC_FILES += $(filter %.scala,$(UTIL_SOURCES)) +UTIL_SC_BOOTCLASSPATH = $(LIBRARY_SC_BOOTCLASSPATH) +UTIL_SCALAC = $(LIBRARY_SCALAC) + +$(latest)util-jc : $(UTIL_JC_FILES) + @$(make) jc target=UTIL UTIL_JC_FILES='$?' + touch $@ + +$(latest)util-sc : $(UTIL_SC_FILES) + @$(make) sc target=UTIL UTIL_SC_FILES='$?' + touch $@ + +############################################################################## +# Targets - scala tools - compiler + +PROJECT_SOURCES += $(SCALAC_SOURCES) +SCALAC_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/scalac +SCALAC_LIST += $(call READLIST,$(PROJECT_LISTDIR)/scalac.lst) +SCALAC_SOURCES += $(SCALAC_LIST:%=$(SCALAC_ROOT)/%) +SCALAC_JC_FILES += $(filter %.java,$(SCALAC_SOURCES)) +SCALAC_JC_CLASSPATH = $(JC_CLASSPATH):$(MSIL_JARFILE):$(FJBG_JARFILE) +SCALAC_SC_FILES += $(filter %.scala,$(SCALAC_SOURCES)) +SCALAC_SC_CLASSPATH = $(SCALAC_JC_CLASSPATH) +SCALAC_SC_BOOTCLASSPATH = $(LIBRARY_SC_BOOTCLASSPATH) +SCALAC_SCALAC = $(LIBRARY_SCALAC) + +$(latest)scalac-jc : $(SCALAC_JC_FILES) + @$(make) jc target=SCALAC SCALAC_JC_FILES='$?' + touch $@ + +$(latest)scalac-sc : $(SCALAC_SC_FILES) + @$(make) sc target=SCALAC SCALAC_SC_FILES='$?' + touch $@ + +############################################################################## +# Targets - scala tools - interpreter + +PROJECT_SOURCES += $(SCALAI_SOURCES) +SCALAI_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/scalai +SCALAI_LIST += $(call READLIST,$(PROJECT_LISTDIR)/scalai.lst) +SCALAI_SOURCES += $(SCALAI_LIST:%=$(SCALAI_ROOT)/%) +SCALAI_JC_FILES = $(SCALAI_SOURCES) + +$(latest)scalai-jc : $(SCALAI_JC_FILES) @$(make) jc target=SCALAI SCALAI_JC_FILES='$?' touch $@ -.latest-scaladoc-jc : $(SCALADOC_JC_FILES) +############################################################################## +# Targets - scala tools - scaladoc + +PROJECT_SOURCES += $(SCALADOC_SOURCES) +SCALADOC_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/scaladoc +SCALADOC_LIST += $(call READLIST,$(PROJECT_LISTDIR)/scaladoc.lst) +SCALADOC_SOURCES += $(SCALADOC_LIST:%=$(SCALADOC_ROOT)/%) +SCALADOC_JC_FILES += $(filter %.java,$(SCALADOC_SOURCES)) +SCALADOC_SC_FILES += $(filter %.scala,$(SCALADOC_SOURCES)) +SCALADOC_RSRC_LIST += resources/script.js +SCALADOC_RSRC_LIST += resources/style.css +SCALADOC_RSRC_LIST += resources/xhtml-lat1.ent +SCALADOC_RSRC_LIST += resources/xhtml-special.ent +SCALADOC_RSRC_LIST += resources/xhtml-symbol.ent +SCALADOC_RSRC_LIST += resources/xhtml1-transitional.dtd +SCALADOC_RSRC_FILES += $(SCALADOC_RSRC_LIST:%=$(SCALADOC_ROOT)/%) +SCALADOC_RSRC_OUTPUTDIR = $(SCALADOC_ROOT:$(PROJECT_SOURCEDIR)/%=$(PROJECT_OUTPUTDIR)/%) + +$(latest)scaladoc-jc : $(SCALADOC_JC_FILES) @$(make) jc target=SCALADOC SCALADOC_JC_FILES='$?' touch $@ -.latest-scaladoc-sc : $(SCALADOC_SC_FILES) +$(latest)scaladoc-sc : $(SCALADOC_SC_FILES) @$(make) sc target=SCALADOC SCALADOC_SC_FILES='$?' touch $@ -.latest-scaladoc-rsrc : $(SCALADOC_RSRC_FILES) +$(latest)scaladoc-rsrc : $(SCALADOC_RSRC_FILES) $(strip $(MIRROR) -m 644 -C $(SCALADOC_ROOT) $(SCALADOC_RSRC_LIST) \ $(SCALADOC_RSRC_OUTPUTDIR)) touch $@ -.latest-scalap-sc : $(SCALAP_SC_FILES) +############################################################################## +# Targets - scala tools - scalap + +PROJECT_SOURCES += $(SCALAP_SOURCES) +SCALAP_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/scalap +SCALAP_LIST += $(call READLIST,$(PROJECT_LISTDIR)/scalap.lst) +SCALAP_SOURCES += $(SCALAP_LIST:%=$(SCALAP_ROOT)/%) +SCALAP_SC_FILES += $(SCALAP_SOURCES) + +$(latest)scalap-sc : $(SCALAP_SC_FILES) @$(make) sc target=SCALAP SCALAP_SC_FILES='$?' touch $@ -.latest-dtd2scala-sc : $(DTD2SCALA_SC_FILES) +############################################################################## +# Targets - scala tools - dtd2scala + +PROJECT_SOURCES += $(DTD2SCALA_SOURCES) +DTD2SCALA_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/dtd2scala +DTD2SCALA_LIST += $(call READLIST,$(PROJECT_LISTDIR)/dtd2scala.lst) +DTD2SCALA_SOURCES += $(DTD2SCALA_LIST:%=$(DTD2SCALA_ROOT)/%) +DTD2SCALA_SC_FILES += $(filter %.scala,$(DTD2SCALA_SOURCES)) +DTD2SCALA_RSRC_LIST += $(filter %.xml,$(DTD2SCALA_LIST)) +DTD2SCALA_RSRC_FILES += $(filter %.xml,$(DTD2SCALA_SOURCES)) +DTD2SCALA_RSRC_OUTPUTDIR = $(DTD2SCALA_ROOT:$(PROJECT_SOURCEDIR)/%=$(PROJECT_OUTPUTDIR)/%) + +$(latest)dtd2scala-sc : $(DTD2SCALA_SC_FILES) @$(make) sc target=DTD2SCALA DTD2SCALA_SC_FILES='$?' touch $@ -.latest-dtd2scala-rsrc : $(DTD2SCALA_RSRC_FILES) +$(latest)dtd2scala-rsrc : $(DTD2SCALA_RSRC_FILES) $(strip $(MIRROR) -m 644 -C $(DTD2SCALA_ROOT) $(DTD2SCALA_RSRC_LIST) \ $(DTD2SCALA_RSRC_OUTPUTDIR)) touch $@ -.latest-servletEngine-sc : $(SERVLETENGINE_SC_FILES) - @$(make) sc target=SERVLETENGINE SERVLETENGINE_SC_FILES='$?' - touch $@ +############################################################################## +# Targets - scala tools - scala4ant -.latest-scala4ant-sc : $(SCALA4ANT_SC_FILES) +PROJECT_SOURCES += $(SCALA4ANT_SOURCES) +SCALA4ANT_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/scala4ant +SCALA4ANT_LIST += $(call READLIST,$(PROJECT_LISTDIR)/scala4ant.lst) +SCALA4ANT_SOURCES += $(SCALA4ANT_LIST:%=$(SCALA4ANT_ROOT)/%) +SCALA4ANT_SC_FILES += $(SCALA4ANT_SOURCES) +SCALA4ANT_SC_CLASSPATH = $(SC_CLASSPATH):$(ANT_JARFILE) + +$(latest)scala4ant-sc : $(SCALA4ANT_SC_FILES) @$(make) sc target=SCALA4ANT SCALA4ANT_SC_FILES='$?' touch $@ -.latest-scalatest-jc : $(SCALATEST_JC_FILES) +############################################################################## +# Targets - scala tools - scalatest + +PROJECT_SOURCES += $(SCALATEST_SOURCES) +SCALATEST_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/scalatest +SCALATEST_LIST += $(call READLIST,$(PROJECT_LISTDIR)/scalatest.lst) +SCALATEST_SOURCES += $(SCALATEST_LIST:%=$(SCALATEST_ROOT)/%) +SCALATEST_JC_FILES += $(SCALATEST_SOURCES) + +$(latest)scalatest-jc : $(SCALATEST_JC_FILES) @$(make) jc target=SCALATEST SCALATEST_JC_FILES='$?' touch $@ ############################################################################## -# Rules - -$(SCRIPTS_WRAPPER) : INSTALL_PREFIX ?= $(PROJECT_ROOT) -$(SCRIPTS_WRAPPER) : MACRO_VERSION ?= $(PROJECT_VERSION) -$(SCRIPTS_WRAPPER) : MACRO_RUNTIME_SOURCES ?= $(PROJECT_SOURCEDIR) -$(SCRIPTS_WRAPPER) : MACRO_RUNTIME_CLASSES ?= $(PROJECT_OUTPUTDIR) -$(SCRIPTS_WRAPPER) : MACRO_TOOLS_CLASSES ?= $(PROJECT_OUTPUTDIR) -$(SCRIPTS_WRAPPER) : MACRO_FJBG_CLASSES ?= $(FJBG_JARFILE) -$(SCRIPTS_WRAPPER) : MACRO_MSIL_CLASSES ?= $(MSIL_JARFILE) -$(SCRIPTS_WRAPPER) : MACRO_JAVA_ARGS ?= -enableassertions -$(SCRIPTS_WRAPPER) : $(VERSION_FILE) -$(SCRIPTS_WRAPPER) : $(PROJECT_ROOT)/Makefile -$(SCRIPTS_WRAPPER) : $(PROJECT_ROOT)/Makefile.config -$(SCRIPTS_WRAPPER) : $(PROJECT_ROOT)/Makefile.private -$(SCRIPTS_WRAPPER) : $(SCRIPTS_WRAPPER).tmpl - $(RM) $@ - @$(ECHO) "Generating file $@ $(PROJECT_ROOT)" - @$(SED) \ - $(call SCRIPTS_WRAPPER_MACRO,VERSION) \ - $(call SCRIPTS_WRAPPER_MACRO,RUNTIME_SOURCES) \ - $(call SCRIPTS_WRAPPER_MACRO,RUNTIME_CLASSES) \ - $(call SCRIPTS_WRAPPER_MACRO,TOOLS_CLASSES) \ - $(call SCRIPTS_WRAPPER_MACRO,FJBG_CLASSES) \ - $(call SCRIPTS_WRAPPER_MACRO,MSIL_CLASSES) \ - $(call SCRIPTS_WRAPPER_MACRO,JAVA_ARGS) \ - $@.tmpl > $@ - @macros=`$(SED) -n -es'@.*{#\(.*\)#}.*@\1@p' < $@`; \ - if [ -n "$$macros" ]; then \ - $(ECHO) "error: there are undefined macros: $$macros"; \ - $(RM) $@; \ - exit 1; \ - fi; - $(CHMOD) 555 $@ +# Targets - scala tools - servlet engine -$(SCRIPTS_WRAPPER_LINKS): $(SCRIPTS_WRAPPER) - @if [ ! -h $@ ]; then \ - $(call RUN,$(LN) -s $(notdir $(SCRIPTS_WRAPPER)) $@); \ - fi +PROJECT_SOURCES += $(SERVLET_SOURCES) +SERVLET_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/servletEngine +SERVLET_LIST += $(call READLIST,$(PROJECT_LISTDIR)/servletEngine.lst) +SERVLET_SOURCES += $(SERVLET_LIST:%=$(SERVLET_ROOT)/%) +SERVLET_SC_FILES += $(SERVLET_SOURCES) +SERVLET_SC_CLASSPATH = $(PROJECT_CLASSPATH) -$(FUNCTION_FILES) : .latest-meta-jc $(FUNCTION_TEMPLATE) - $(RM) .latest-generate +$(latest)servlet-sc : $(SERVLET_SC_FILES) + @$(make) sc target=SERVLET SERVLET_SC_FILES='$?' + touch $@ + +############################################################################## +# Targets - scala tools + +TOOLS_NAME = tools +TOOLS_JAR_ARCHIVE = $(PROJECT_LIBRARYDIR)/$(TOOLS_NAME).jar +TOOLS_JAR_INPUTDIR = $(PROJECT_OUTPUTDIR) +TOOLS_JAR_FILES += ch +TOOLS_JAR_FILES += scala/tools/dtd2scala +TOOLS_JAR_FILES += scala/tools/scala4ant +TOOLS_JAR_FILES += scala/tools/scalac +TOOLS_JAR_FILES += scala/tools/scaladoc +TOOLS_JAR_FILES += scala/tools/scalai +TOOLS_JAR_FILES += scala/tools/scalap +TOOLS_JAR_FILES += scala/tools/scalatest +TOOLS_JAR_FILES += scala/tools/util +TOOLS_JAR_FILES += scalac + +distclean : distclean.tools +distclean.tools : + $(RM) $(TOOLS_JAR_ARCHIVE) + +$(TOOLS_JAR_ARCHIVE) : $(LATEST)lamplib-jc +$(TOOLS_JAR_ARCHIVE) : $(LATEST)util-jc +$(TOOLS_JAR_ARCHIVE) : $(LATEST)util-sc +$(TOOLS_JAR_ARCHIVE) : $(LATEST)scalac-jc +$(TOOLS_JAR_ARCHIVE) : $(LATEST)scalac-sc +$(TOOLS_JAR_ARCHIVE) : $(LATEST)scalai-jc +$(TOOLS_JAR_ARCHIVE) : $(LATEST)scaladoc-jc +$(TOOLS_JAR_ARCHIVE) : $(LATEST)scaladoc-sc +$(TOOLS_JAR_ARCHIVE) : $(LATEST)scaladoc-rsrc +$(TOOLS_JAR_ARCHIVE) : $(LATEST)scalap-sc +$(TOOLS_JAR_ARCHIVE) : $(LATEST)dtd2scala-sc +$(TOOLS_JAR_ARCHIVE) : $(LATEST)dtd2scala-rsrc +$(TOOLS_JAR_ARCHIVE) : $(LATEST)scala4ant-sc +$(TOOLS_JAR_ARCHIVE) : $(LATEST)scalatest-jc +$(TOOLS_JAR_ARCHIVE) : + @$(make) jar target=TOOLS + +############################################################################## +# Targets - template expansion + +# generation of Function<n>.java +FUNCTION_FILES += $(filter $(LIBRARY_ROOT)/Function%.java,$(LIBRARY_SOURCES)) +FUNCTION_TEMPLATE = $(LIBRARY_ROOT)/Function.java.tmpl + +# generation of Tuple<n>.scala +TUPLE_FILES += $(filter $(LIBRARY_ROOT)/Tuple%.scala,$(LIBRARY_SOURCES)) +TUPLE_TEMPLATE = $(LIBRARY_ROOT)/Tuple.scala.tmpl + +fastclean : fastclean.generate +fastclean.generate : + @if [ -f .generated ]; then $(call RUN,$(RM) `$(CAT) .generated`); fi + $(RM) .generated + +$(FUNCTION_FILES) : $(LATEST)meta-jc $(FUNCTION_TEMPLATE) @$(make) generate -$(TUPLE_FILES) : .latest-meta-jc $(TUPLE_TEMPLATE) - $(RM) .latest-generate +$(TUPLE_FILES) : $(LATEST)meta-jc $(TUPLE_TEMPLATE) @$(make) generate -% : .latest-meta-jc %.tmpl - $(RM) .latest-generate +% : $(LATEST)meta-jc %.tmpl @$(make) generate -$(LIBRARY_JAR_ARCHIVE) : .latest-library-jc -$(LIBRARY_JAR_ARCHIVE) : .latest-library-sc -$(LIBRARY_JAR_ARCHIVE) : - $(MV) $(PROJECT_OUTPUTDIR)/scala/tools $(PROJECT_OUTPUTDIR)/scala.tools - @$(MAKE) jar target=LIBRARY - $(MV) $(PROJECT_OUTPUTDIR)/scala.tools $(PROJECT_OUTPUTDIR)/scala/tools +generate : $(LATEST)meta-jc + @if [ -f .generated ]; then $(call RUN,$(RM) `$(CAT) .generated`); fi + $(strip $(JAVA) -cp $(PROJECT_CLASSPATH) \ + meta.GenerateAll $(PROJECT_SOURCEDIR) .generated) -$(TOOLS_JAR_ARCHIVE) : .latest-lamplib-jc -$(TOOLS_JAR_ARCHIVE) : .latest-util-jc -$(TOOLS_JAR_ARCHIVE) : .latest-util-sc -$(TOOLS_JAR_ARCHIVE) : .latest-scalac-jc -$(TOOLS_JAR_ARCHIVE) : .latest-scalac-sc -$(TOOLS_JAR_ARCHIVE) : .latest-scalai-jc -$(TOOLS_JAR_ARCHIVE) : .latest-scaladoc-jc -$(TOOLS_JAR_ARCHIVE) : .latest-scaladoc-sc -$(TOOLS_JAR_ARCHIVE) : .latest-scaladoc-rsrc -$(TOOLS_JAR_ARCHIVE) : .latest-scalap-sc -$(TOOLS_JAR_ARCHIVE) : .latest-dtd2scala-sc -$(TOOLS_JAR_ARCHIVE) : .latest-dtd2scala-rsrc -$(TOOLS_JAR_ARCHIVE) : .latest-scala4ant-sc -$(TOOLS_JAR_ARCHIVE) : .latest-scalatest-jc -$(TOOLS_JAR_ARCHIVE) : - @$(MAKE) jar target=TOOLS +.PHONY : generate ############################################################################## # Includes |