Skip to content
Snippets Groups Projects
Select Git revision
  • f-docs-reorganize
  • main default protected
  • f-structured-query-tree
  • f-remove-chown-check
  • f-better-sss-bin-dir
  • dev protected
  • f-remove-dropoffbox
  • f-sss4grpc
  • f-refactor-compose
  • f-real-id
  • f-doip
  • f-filesystem-import
  • henrik-tmp
  • f-filesystem-link
  • f-filesystem-directory
  • f-filesystem-core
  • f-filesystem-cleanup
  • f-string-ids
  • f-filesystem-main
  • f-linkahead-rename-before
  • f-linkahead-rename
  • v0.13.0 protected
  • v0.12.3 protected
  • v0.12.2 protected
  • v0.12.1 protected
  • v0.12.0 protected
  • v0.11.0 protected
  • v0.10.0 protected
  • v0.9.0 protected
  • v0.8.1 protected
  • v0.8.0 protected
  • v0.7.3 protected
  • v0.7.2 protected
  • v0.7.1 protected
  • v0.6.0 protected
  • v0.5.0 protected
  • v0.4.0 protected
  • v0.3.0 protected
  • working_sss protected
  • v0.1 protected
40 results

Makefile

Blame
  • Timm Fitschen's avatar
    Timm Fitschen authored and Florian Spreckelsen committed
    66d9c740
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Makefile 4.49 KiB
    #
    # ** 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
    #
    
    CAOSDB_SERVER_VERSION ?= $(shell mvn org.apache.maven.plugins:maven-help-plugin:3.1.0:evaluate -Dexpression=project.version -q -DforceStdout)
    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 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