diff options
author | Trevor Elliott <trevor@galois.com> | 2013-05-16 14:28:25 -0700 |
---|---|---|
committer | Trevor Elliott <trevor@galois.com> | 2013-05-16 14:28:25 -0700 |
commit | d316614847c16569da34a42e808dfb332fc6b6c9 (patch) | |
tree | 1d76a49c647c645d4513ab970b500f3c7b6a0cf1 /Makefile | |
parent | b4f01ad9fa584c77fe6b2a6f55a9e5c00a701e58 (diff) |
Remove google closure, and start reworking the build system
Squashed commit of the following:
commit 446aae2afd089c28abd1d03a5fd20d4735837e16
Author: Trevor Elliott <trevor@galois.com>
Date: Thu May 16 11:50:17 2013 -0700
stage-dir doesn't need to be cleaned
Since everything goes into a common build tree now, cleaning just
involves removing the entire build tree.
commit d8f531ddf8ee1406ec915502c28dc0eb3912d0ee
Author: Trevor Elliott <trevor@galois.com>
Date: Thu May 16 11:47:10 2013 -0700
Switch to placing build artifacts in a build tree
commit 9eedeec8d6a1012b1b7e466120260276b1e952d4
Author: Trevor Elliott <trevor@galois.com>
Date: Thu May 16 11:35:01 2013 -0700
Remove the closure_compiler and closure_linter
commit 5784158cf2cd55f0ffd01147ae014379ecc857fd
Author: Trevor Elliott <trevor@galois.com>
Date: Thu May 16 11:34:27 2013 -0700
Move the scripts in build to tools/bin
commit 64a6a53ea0fd5e299e9d17c0e4f8fedf305272dc
Author: Trevor Elliott <trevor@galois.com>
Date: Thu May 16 11:27:55 2013 -0700
Build jsdoc
Also, remove the old Makefiles that were in doc, as they're not necessary
anymore.
commit 1ef0d9e39cd4a24807ee6ca956fbc627fb851b9d
Author: Trevor Elliott <trevor@galois.com>
Date: Thu May 16 11:18:59 2013 -0700
Conditionally build the manual
commit c326c58059e0d5035edecfd6261ee42797c49c2c
Author: Trevor Elliott <trevor@galois.com>
Date: Thu May 16 11:13:31 2013 -0700
Get the html manual building again
commit 480fa132ffb0562eb3f61d45d79d3315b1d3cc29
Author: Trevor Elliott <trevor@galois.com>
Date: Thu May 16 11:13:01 2013 -0700
Move doc specific .gitignore stuff to doc/.gitignore
commit 8c108d4e0df848839bcd6b4c22d623053f590e95
Author: Trevor Elliott <trevor@galois.com>
Date: Wed May 15 10:42:41 2013 -0700
Fix some path inconsistencies in the contexts build.mk
commit ee53404be09cf26983365374da84ade564b92926
Author: Trevor Elliott <trevor@galois.com>
Date: Wed May 15 10:37:40 2013 -0700
Preliminary build system changes
* Chrome extension builds, but there are problems
commit 474c6b88190787aeffd960ffb5855d31770e7141
Author: Trevor Elliott <trevor@galois.com>
Date: Mon May 13 19:06:31 2013 -0700
Remove the closure toolkit
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 93 |
1 files changed, 46 insertions, 47 deletions
@@ -17,74 +17,73 @@ # See the License for the specific language governing permissions and # limitations under the License. -REPO_ROOT=. -CHROME_EXTDIR=contexts -FF_EXTDIR=contexts -TEST_RUNNER_DIR=testrunner -HEADLESS_DIR=headless -RSTESTER_DIR=rsTester -DOC_DIR=doc -MVN_EXE=`which mvn` -define profile -.PHONY: profile-$1 -profile-$1: $(REPO_ROOT)/profiles/$1/.token +# Entry Point ################################################################## -$(REPO_ROOT)/profiles/$1/.token: $(REPO_ROOT)/profiles/$1.tar - $(MAKE) -C $(REPO_ROOT)/profiles $1 +.PHONY: all +all: -.PHONY: clean-profile-$1 -clean-profile-$1: - $(MAKE) -C $(REPO_ROOT)/profiles clean-$1 +.PHONY: unpack +unpack: -clean: clean-profile-$1 -endef +.PHONY: clean +clean:: -# package/install various maven sub-projects -define pkg -.PHONY: pkg-$1 -pkg-$1: - cd $1; xvfb-run -a $(MVN_EXE) install +# Utilities #################################################################### -endef +topdir := $(CURDIR) +path := . -MVN_TEST_CMD=xvfb-run -a $(MVN_EXE) test +include mk/util.mk +include mk/subdir.mk -all: chromeExtension -ffExtension: - @make -C $(FF_EXTDIR) -chromeExtension: - @make -C $(CHROME_EXTDIR) +# Build Directory Staging ###################################################### +build-dir := $(topdir)/build -cleanOSS: - @make -C $(FF_EXTDIR) clean - @make -C $(CHROME_EXTDIR) clean - @make -C $(DOC_DIR) clean +$(build-dir): + $(call cmd,mkdir) +clean:: + $(RM) -r $(build-dir) -$(eval $(call profile,firefox)) -$(eval $(call profile,chrome)) +# Subdirs ###################################################################### -$(eval $(call pkg,rsTester)) +$(eval $(call subdir,contexts)) +$(eval $(call subdir,profiles)) +$(eval $(call subdir,doc)) + + +# Maven Packages ############################################################### + +# Don't try to run any of this if maven isn't installed +MVN_EXE := $(shell which --skip-alias $i mvn 2>/dev/null) +ifneq "$(MVN_EXE)" "" +# package/install various maven sub-projects +MVN_TEST_CMD := xvfb-run -a $(MVN_EXE) test + +define pkg +.PHONY: pkg-$1 +pkg-$1: + cd $1 && xvfb-run -a $(MVN_EXE) install +endef + +$(eval $(call pkg,rsTester)) $(eval $(call pkg,headless)) +TEST_RUNNER_DIR := testrunner +HEADLESS_DIR := headless +RSTESTER_DIR := rsTester test: chromeExtension profile-chrome profile-firefox ffExtension pkg-rsTester cd $(TEST_RUNNER_DIR) && $(MVN_TEST_CMD) - cd $(RSTESTER_DIR) && $(MVN_TEST_CMD) - cd $(HEADLESS_DIR) && $(MVN_TEST_CMD) - -.PHONY: doc -doc: doc/jsdoc doc/manual -doc/jsdoc: - @make -C $(DOC_DIR) + cd $(RSTESTER_DIR) && $(MVN_TEST_CMD) + cd $(HEADLESS_DIR) && $(MVN_TEST_CMD) -doc/manual: - @make -C $(DOC_DIR) man +endif -clean: cleanOSS +# Documentation ################################################################ |