Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| ############################################################################# | |
| # Copyright (c) Minh Duc Cao, Monash Uni & UQ, All rights reserved. # | |
| # # | |
| # Redistribution and use in source and binary forms, with or without # | |
| # modification, are permitted provided that the following conditions # | |
| # are met: # | |
| # # | |
| # 1. Redistributions of source code must retain the above copyright notice, # | |
| # this list of conditions and the following disclaimer. # | |
| # 2. Redistributions in binary form must reproduce the above copyright # | |
| # notice, this list of conditions and the following disclaimer in the # | |
| # documentation and/or other materials provided with the distribution. # | |
| # 3. Neither the names of the institutions nor the names of the contributors# | |
| # may be used to endorse or promote products derived from this software # | |
| # without specific prior written permission. # | |
| # # | |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS # | |
| # IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, # | |
| # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR # | |
| # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR # | |
| # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # | |
| # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # | |
| # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # | |
| # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # | |
| # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # | |
| # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # | |
| # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # | |
| ############################################################################/ | |
| ############################################################################ | |
| # A generic makefile for java | |
| # | |
| ############################################################################ | |
| ########################################################################### | |
| # Modify the following parameter to suit your setting | |
| #Class directory | |
| CLASS_DIR=target/dev-classes | |
| #Source directory | |
| SRC_MAIN_DIR=src/main/java | |
| SRC_DEV_DIR=src/dev/java | |
| ##SRC_WORK_DIR=src/work/java | |
| #Java compiler | |
| JCC=javac | |
| #target jar file | |
| JAR_FILE=japsa-dev.jar | |
| #External library directory | |
| LIB_DIR=libs | |
| #List of external libraries | |
| #EXT_LIBS=colloquial.jar commons-math3-3.0.jar jhdf5.jar jhdfobj.jar htsjdk-1.126.jar guava-18.0.jar jcommon-1.0.23.jar jfreechart-1.0.19.jar JRIEngine.jar JRI.jar gs-core-1.3.jar gs-ui-1.3.jar gs-algo-1.3.jar javax.json-api-1.0.jar jfxrt.jar | |
| EXT_LIBS=colloquial.jar commons-math3-3.0.jar jhdf5.jar jhdfobj.jar htsjdk-1.126.jar guava-18.0.jar jcommon-1.0.23.jar jfreechart-1.0.19.jar JRIEngine.jar JRI.jar gs-core-1.3.jar gs-ui-1.3.jar gs-algo-1.3.jar javax.json-api-1.0.jar javax.json-1.0.4.jar slf4j-api-1.7.25.jar slf4j-simple-1.7.25.jar jfxrt.jar | |
| ########################################################################### | |
| ##What this scripts does: | |
| # 1. Find all packages by searching SRC_DIR subdirectories | |
| # 2. Get all the java file, and compile them to the CLASS_DIR directory | |
| # 5. Clean back up files (*.bak, ~, etc) | |
| # To be implemented: | |
| # 3. Copy all the resources to class directory | |
| # 4. Make java file | |
| ########################################################################## | |
| COMMA:= , | |
| EMPTY:= | |
| SPACE:= $(SPACE) $(SPACE) | |
| LIBS:=$(subst $(SPACE),:, $(addprefix $(LIB_DIR)/, $(EXT_LIBS))) | |
| ##Get all the packages in $(SRC_MAIN_DIR). | |
| PACKAGE_MAIN_DIRS := $(shell echo `cd $(SRC_MAIN_DIR);find . -type d`) | |
| SRC_MAIN_DIRS := $(addprefix $(SRC_MAIN_DIR)/, $(PACKAGE_MAIN_DIRS)) | |
| CLASS_MAIN_DIRS := $(addprefix $(CLASS_DIR)/, $(PACKAGE_MAIN_DIRS)) | |
| ##Get the list of java files | |
| JAVA_MAIN_FILES := $(foreach dir,$(SRC_MAIN_DIRS),$(wildcard $(dir)/*.java)) | |
| CLASS_MAIN_FILES := $(subst $(SRC_MAIN_DIR)/,$(CLASS_DIR)/,$(JAVA_MAIN_FILES:.java=.class)) | |
| PACKAGE_DEV_DIRS := $(shell echo `cd $(SRC_DEV_DIR);find . -type d`) | |
| SRC_DEV_DIRS := $(addprefix $(SRC_DEV_DIR)/, $(PACKAGE_DEV_DIRS)) | |
| CLASS_DEV_DIRS := $(addprefix $(CLASS_DIR)/, $(PACKAGE_DEV_DIRS)) | |
| ##Get the list of java files | |
| JAVA_DEV_FILES := $(foreach dir,$(SRC_DEV_DIRS),$(wildcard $(dir)/*.java)) | |
| CLASS_DEV_FILES := $(subst $(SRC_DEV_DIR)/,$(CLASS_DIR)/,$(JAVA_DEV_FILES:.java=.class)) | |
| #TODO: merge three src dirs to one by foreach | |
| #####################Make targets | |
| VPATH=$(subst ' ',':',$(PACKAGE_MAIN_DIRS)) | |
| $(CLASS_DIR)/%.class: $(SRC_MAIN_DIR)/%.java $(CLASS_DIR) | |
| $(JCC) -sourcepath $(SRC_MAIN_DIR) -cp $(CLASS_DIR):$(LIBS) -nowarn -d $(CLASS_DIR) $(JDEBUGFLAGS) $< | |
| VPATH=$(subst ' ',':',$(PACKAGE_DEV_DIRS)) | |
| $(CLASS_DIR)/%.class: $(SRC_DEV_DIR)/%.java $(CLASS_DIR) | |
| $(JCC) -sourcepath $(SRC_DEV_DIR):$(SRC_MAIN_DIR) -cp $(CLASS_DIR):$(LIBS) -nowarn -d $(CLASS_DIR) $(JDEBUGFLAGS) $< | |
| all: jar | |
| main-classes: $(CLASS_MAIN_FILES) | |
| dev-classes: $(CLASS_DEV_FILES) | |
| ###Create the class directory if neccessary | |
| $(CLASS_DIR): | |
| mkdir -p $(CLASS_DIR) | |
| images: | |
| cp -r $(SRC_MAIN_DIR)/japsa/bio/misc/dnaPlatform/gui/images $(CLASS_DIR)/japsa/bio/misc/dnaPlatform/gui/ | |
| cp -r $(SRC_MAIN_DIR)/japsa/seq/nanopore/icons $(CLASS_DIR)/japsa/seq/nanopore/ | |
| $(JAR_FILE): main-classes dev-classes images | |
| jar cf $(JAR_FILE) -C $(CLASS_DIR) . | |
| jar: $(JAR_FILE) | |
| clean: | |
| @@for i in $(PACKAGE_MAIN_DIRS); do \ | |
| echo "rm -f $(SRC_MAIN_DIR)/$$i/*.bak $(SRC_MAIN_DIR)/$$i/*.class $(SRC_MAIN_DIR)/$$i/*~ $(CLASS_DIR)/$$i/*.class"; \ | |
| rm -f $(SRC_MAIN_DIR)/$$i/*.bak $(SRC_MAIN_DIR)/$$i/*.class $(SRC_MAIN_DIR)/$$i/*~ $(CLASS_DIR)/$$i/*.class; \ | |
| done | |
| @@for i in $(PACKAGE_DEV_DIRS); do \ | |
| echo "rm -f $(SRC_DEV_DIR)/$$i/*.bak $(SRC_DEV_DIR)/$$i/*.class $(SRC_DEV_DIR)/$$i/*~ $(CLASS_DIR)/$$i/*.class"; \ | |
| rm -f $(SRC_DEV_DIR)/$$i/*.bak $(SRC_DEV_DIR)/$$i/*.class $(SRC_DEV_DIR)/$$i/*~ $(CLASS_DIR)/$$i/*.class; \ | |
| done | |
| rm -f install.sh install.bat | |
| ############################################################################## | |
| # INSTALLATION | |
| ############################################################################## | |
| ifdef INSTALL_DIR | |
| O_INS_DIR=-installDir=\"${INSTALL_DIR}\" | |
| else | |
| O_INS_DIR= | |
| endif | |
| ifdef JLP | |
| O_JLP=-jlp=\"${JLP}\" | |
| else | |
| O_JLP= | |
| endif | |
| ifdef MXMEM | |
| O_MXMEM=-xmx=${MXMEM} | |
| else | |
| O_MXMEM= | |
| endif | |
| ifdef SERVER | |
| O_SERVER=--server=${SERVER} | |
| else | |
| O_SERVER= | |
| endif | |
| ##=/usr/lib/jni:/usr/lib/R/site-library/rJava/jri | |
| pre-install: jar | |
| @@echo "java -cp $(JAR_FILE):$(LIB_DIR)/guava-18.0.jar:$(LIB_DIR)/slf4j-api-1.7.25.jar:$(LIB_DIR)/slf4j-simple-1.7.25.jar japsadev.util.deploy.DevDeploy --mode install --libs $(subst $(SPACE),:, $(EXT_LIBS)) $(O_INS_DIR) $(O_JLP) $(O_MXMEM) $(O_SERVER) --compiler \"`$(JCC) -version 2>&1`\"" > install.sh && \ | |
| chmod u+x install.sh && \ | |
| echo "java -cp $(JAR_FILE):$(LIB_DIR)\guava-18.0.jar:$(LIB_DIR)/slf4j-api-1.7.25.jar:$(LIB_DIR)/slf4j-simple-1.7.25.jar japsadev.util.deploy.DevDeploy --mode install --libs $(subst $(SPACE),:, $(EXT_LIBS)) $(O_INS_DIR) $(O_JLP) $(O_MXMEM) $(O_SERVER)--compiler \"`$(JCC) -version 2>&1`\"" > install.bat &&\ | |
| echo "Installation scripts created" | |
| install: pre-install | |
| ./install.sh | |
| uninstall: | |
| @@java -cp $(JAR_FILE):$(LIB_DIR)/guava-18.0.jar:$(LIB_DIR)/slf4j-api-1.7.25.jar:$(LIB_DIR)/slf4j-simple-1.7.25.jar japsadev.util.deploy.DevDeploy --mode uninstall --libs $(subst $(SPACE),:, $(EXT_LIBS)) ${O_INS_DIR} && echo "Japsa uninstalled!" | |
| galaxy: jar | |
| @@java -cp $(JAR_FILE):$(LIB_DIR)/guava-18.0.jar:$(LIB_DIR)/slf4j-api-1.7.25.jar:$(LIB_DIR)/slf4j-simple-1.7.25.jar japsadev.util.deploy.DevDeploy --mode galaxy && echo "Galaxy wrappers generated!" | |