| # Gerrit |
| # |
| # Copyright 2008 Google Inc. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| # Define GWT_SDK to the location of the Google Web Toolkit SDK. |
| # |
| # Define GEN_DEBUG to save the generated Java code from GWT. |
| # |
| |
| uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') |
| |
| JAVA = java |
| JAVAC = javac |
| JAR = jar |
| JAVA_ARGS = -Xmx265m |
| CPIO = cpio -pd |
| GWT_OS = unknown |
| GWT_FLAGS = |
| |
| gwtjsonrpc = ../gwtjsonrpc |
| gwtorm = ../gwtorm |
| |
| ifeq ($(uname_S),Darwin) |
| GWT_OS = mac |
| endif |
| ifeq ($(uname_S),Linux) |
| GWT_OS = linux |
| endif |
| ifeq ($(uname_S),Cygwin) |
| GWT_OS = win |
| endif |
| |
| -include config.mak |
| |
| WEBAPP = webapp |
| WEB_MAIN = com.google.gerrit.Gerrit |
| GWT_CP = \ |
| $(GWT_SDK)/gwt-user.jar \ |
| $(GWT_SDK)/gwt-dev-$(GWT_OS).jar \ |
| lib/gwtjsonrpc.jar \ |
| lib/gwtorm.jar \ |
| #end GWT_CP |
| |
| WEB_LIB_GEN = \ |
| $(WEBAPP)/lib/antlr.jar \ |
| $(WEBAPP)/lib/asm.jar \ |
| $(WEBAPP)/lib/commons-codec.jar \ |
| $(WEBAPP)/lib/gson.jar \ |
| $(WEBAPP)/lib/gwtjsonrpc.jar \ |
| $(WEBAPP)/lib/gwtorm.jar \ |
| $(WEBAPP)/lib/jdbc-h2.jar \ |
| #end WEB_LIB_GEN |
| |
| ALL_LIB = $(filter-out $(WEBAPP)/lib/jdbc-h2.jar, \ |
| $(GWT_SDK)/gwt-servlet.jar \ |
| $(WEBAPP)/lib/dyuproject-openid.jar \ |
| $(WEBAPP)/lib/dyuproject-util.jar \ |
| $(WEBAPP)/lib/jetty-util.jar \ |
| $(WEB_LIB_GEN) \ |
| ) |
| #end ALL_LIB |
| |
| ifdef GEN_DEBUG |
| GWT_FLAGS += -gen gensrc |
| endif |
| |
| MY_JAVA := $(shell find $(WEBAPP)/src -name \*.java) |
| MY_RSRC := $(shell find $(WEBAPP)/src \ |
| -name \*.css \ |
| -o -name \*.gif \ |
| -o -name \*.html \ |
| -o -name \*.png \ |
| -o -name \*.properties \ |
| ) |
| MY_JAR := gerrit-server.jar |
| MY_WAR := gerrit.war |
| MY_WXML := $(WEBAPP)/src/com/google/gerrit/web.xml |
| MY_NCJS := $(WEBAPP)/www/$(WEB_MAIN)/$(WEB_MAIN).nocache.js |
| |
| all: $(MY_WAR) |
| |
| clean: |
| rm -rf $(MY_JAR) $(MY_WAR) .bin |
| rm -f $(WEB_LIB_GEN) |
| rm -rf $(WEBAPP)/gensrc |
| rm -rf $(WEBAPP)/classes |
| rm -rf $(WEBAPP)/www |
| rm -rf $(WEBAPP)/tomcat |
| |
| clean-h2db: |
| rm -f $(WEBAPP)/ReviewDb.*.db |
| .PHONY: clean-h2db |
| |
| $(MY_JAR): $(MY_JAVA) $(ALL_LIB) |
| rm -rf .bin |
| mkdir .bin |
| CLASSPATH= && \ |
| $(foreach p,$(ALL_LIB) $(GWT_SDK)/gwt-user.jar,CLASSPATH="$$CLASSPATH:$(abspath $p)" &&) \ |
| export CLASSPATH && \ |
| cd $(WEBAPP)/src && $(JAVAC) \ |
| -encoding utf-8 \ |
| -source 1.5 \ |
| -target 1.5 \ |
| -g \ |
| -d "$(abspath .bin)" \ |
| $(patsubst $(WEBAPP)/src/%,%,$(MY_JAVA)) |
| cd .bin && $(JAR) cf ../$(MY_JAR) . |
| rm -rf .bin |
| |
| $(MY_WAR): $(MY_NCJS) $(ALL_LIB) $(MY_JAR) $(MY_WXML) |
| rm -rf .bin |
| mkdir -p .bin/WEB-INF/lib |
| cd $(WEBAPP)/www/$(WEB_MAIN) && find . | $(CPIO) $(abspath .bin) |
| for p in $$(find .bin -type f); do\ |
| gzip -9c $$p > $$p.gz || exit;\ |
| done |
| $(foreach p,$(ALL_LIB) $(MY_JAR),cp $p .bin/WEB-INF/lib &&) : |
| cp $(MY_WXML) .bin/WEB-INF |
| mkdir -p .bin/WEB-INF/classes/com/google/gerrit/public |
| $(foreach p,Gerrit.html SetCookie.html,\ |
| rm .bin/$p.gz && \ |
| mv .bin/$p .bin/WEB-INF/classes/com/google/gerrit/public &&) : |
| cd .bin && $(JAR) cf ../$(MY_WAR) . |
| rm -rf .bin |
| |
| $(MY_NCJS): \ |
| $(MY_JAVA) \ |
| $(MY_RSRC) \ |
| $(WEBAPP)/src/com/google/gerrit/Gerrit.gwt.xml \ |
| $(WEB_LIB_GEN) |
| CLASSPATH=src:classes && \ |
| $(foreach p,$(GWT_CP),CLASSPATH=$$CLASSPATH:$p &&) \ |
| export CLASSPATH && \ |
| cd $(WEBAPP) && $(JAVA) $(JAVA_ARGS) \ |
| com.google.gwt.dev.GWTCompiler \ |
| -out www \ |
| $(GWT_FLAGS) \ |
| $(WEB_MAIN) |
| |
| web-shell: $(WEB_LIB_GEN) |
| CLASSPATH=src:classes && \ |
| $(foreach p,$(GWT_CP),CLASSPATH=$$CLASSPATH:$p &&) \ |
| export CLASSPATH && \ |
| cd $(WEBAPP) && $(JAVA) $(JAVA_ARGS) \ |
| com.google.gwt.dev.GWTShell \ |
| -out www \ |
| $(WEB_MAIN)/Gerrit.html |
| |
| web-lib: $(WEB_LIB_GEN) |
| |
| $(WEBAPP)/lib/gwtjsonrpc.jar: $(gwtjsonrpc)/lib/gwtjsonrpc.jar |
| cp $< $@ |
| $(WEBAPP)/lib/gson.jar: $(gwtjsonrpc)/lib/gson.jar |
| cp $< $@ |
| $(WEBAPP)/lib/commons-codec.jar: $(gwtjsonrpc)/lib/commons-codec.jar |
| cp $< $@ |
| $(gwtjsonrpc)/lib/gwtjsonrpc.jar: make-gwtjsonrpc |
| $(MAKE) -C $(gwtjsonrpc) GWT_SDK=$(GWT_SDK) |
| .PHONY: make-gwtjsonrpc |
| |
| $(WEBAPP)/lib/gwtorm.jar: $(gwtorm)/lib/gwtorm.jar |
| cp $< $@ |
| $(WEBAPP)/lib/antlr.jar: $(gwtorm)/lib/antlr.jar |
| cp $< $@ |
| $(WEBAPP)/lib/asm.jar: $(gwtorm)/lib/asm.jar |
| cp $< $@ |
| $(WEBAPP)/lib/jdbc-h2.jar: $(gwtorm)/lib/jdbc-h2.jar |
| cp $< $@ |
| $(gwtorm)/lib/gwtorm.jar: make-gwtorm |
| $(MAKE) -C $(gwtorm) GWT_SDK=$(GWT_SDK) |
| .PHONY: make-gwtorm |
| |
| .PHONY: all |
| .PHONY: clean |
| .PHONY: web web-shell web-lib |