# # ** header v3.0 # This file is a part of the CaosDB Project. # # Copyright (C) 2018 Research Group Biomedical Physics, # Max-Planck-Institute for Dynamics and Self-Organization Göttingen # Copyright (C) 2019 IndiScale GmbH # Copyright (C) 2019 Timm Fitschen (t.fitschen@indiscale.com) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # # ** end header # # TODO Remove the "sed" part of the command after the fix of # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1039607 CAOSDB_SERVER_VERSION != mvn org.apache.maven.plugins:maven-help-plugin:3.5.0:evaluate -Dexpression=project.version -q -DforceStdout | sed -e 's/\x1B.*//g' CAOSDB_COMMAND_LINE_OPTIONS ?= SHELL:=/bin/bash JPDA_PORT ?= 9000 JMX_PORT ?= 9090 compile: print-version easy-units mvn compile print-version: @echo "This is CaosDB $(CAOSDB_SERVER_VERSION)" runserver: print-version mvn exec:java@run run: compile mvn exec:java@run run-debug: jar java -Xrunjdwp:transport=dt_socket,address=0.0.0.0:$(JPDA_PORT),server=y,suspend=n -Dcaosdb.debug=true -jar target/caosdb-server.jar $(CAOSDB_COMMAND_LINE_OPTIONS) run-debug-single: java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=$(JMX_PORT) -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Xrunjdwp:transport=dt_socket,address=0.0.0.0:$(JPDA_PORT),server=y,suspend=n -Dcaosdb.debug=true -jar target/caosdb-server.jar $(CAOSDB_COMMAND_LINE_OPTIONS) run-single: java -jar target/caosdb-server.jar $(CAOSDB_COMMAND_LINE_OPTIONS) formatting: mvn fmt:format autopep8 -ari scripting/ # Compile into a standalone jar file jar: print-version easy-units mvn -e package -DskipTests @pushd target ; \ ln -s "caosdb-server-$(CAOSDB_SERVER_VERSION)-jar-with-dependencies.jar" caosdb-server.jar; \ popd antlr: mvn antlr4:antlr4 test: print-version easy-units MAVEN_DEBUG_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Dcaosdb.debug=true -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=0.0.0.0:$(JPDA_PORT)" mvn test -X test_misc: cd misc/bend_symlinks/ && ./bend_symlinks.sh -h && test/test_suite.sh | tee test_output cat misc/bend_symlinks/test_output | grep "Ran 10 tests." cat misc/bend_symlinks/test_output | grep "OK" rm misc/bend_symlinks/test_output clean: clean-antlr mvn clean rm -rf .m2-local clean-antlr: rm -rf target/generated-sources/antlr4/ .PHONY: run-server-screen run-server-screen: @if test "$$(screen -ls | grep -c 'caosdb-screen')" -eq "1"; then \ echo "server is probably running. try 'screen -ls'"; \ exit 1 ; \ fi # start and wait for server @screen -L -S caosdb-screen -t server -d -m -A make run @sleep 2 @while [ 1 -eq 1 ] ; do \ screen -S caosdb-screen -X hardcopy .screen.log || break ; \ [ $$(grep -c "org.restlet.ext.jetty.JettyServerHelper start" .screen.log) -eq 0 ] || break ; \ done; \ .PHONY: stop-server-screen stop-server-screen: # stop screen session with server @screen -S caosdb-screen -X hardcopy screen.log || true @screen -S caosdb-screen -p server -X stuff "^C" .PHONY: run-debug-screen run-debug-screen: @if test "$$(screen -ls | grep -c 'caosdb-debug-screen')" -eq "1"; then \ echo "server is probably running. try 'screen -ls'"; \ exit 1 ; \ fi # start and wait for server @screen -L -S caosdb-debug-screen -t server -d -m -A make run-debug @sleep 2 @while [ 1 -eq 1 ] ; do \ screen -S caosdb-debug-screen -X hardcopy .screen.log || break ; \ [ $$(grep -c "org.restlet.ext.jetty.JettyServerHelper start" .screen.log) -eq 0 ] || break ; \ done; \ .PHONY: stop-debug-screen stop-debug-screen: # stop screen session with debug server @screen -S caosdb-debug-screen -X hardcopy screen.log || true @screen -S caosdb-debug-screen -p server -X stuff "^C" .m2-local: mkdir .m2-local easy-units: .m2-local mvn clean mvn deploy:deploy-file -DgroupId=de.timmfitschen -DartifactId=easy-units -Dversion=0.0.1 -Durl=file:./.m2-local/ -DrepositoryId=local-maven-repo -DupdateReleaseInfo=true -Dfile=./lib/easy-units-0.0.1-jar-with-dependencies.jar # Compile the standalone documentation .PHONY: doc doc: $(MAKE) -C src/doc html