# project classes configuration MAINCLASS := subconscious.Subconscious SOURCES := $(shell find src -iname '*.java') # debug or release mode DEBUG=1 LIMIT_RAM=1 # java compiler configuraton JAVAC := javac JAVAC_ARGS := -Xlint:all -Xdiags:verbose \ -classpath lib/gson-2.6.2.jar:. \ -sourcepath src # java debugger configuration JDB := jdb JDB_ARGS := -attach jdbconn USE_JDB := 0 # java runtime configuration JAVA := java JAVA_ARGS := -cp ../lib/gson-2.6.2.jar:. ifeq ($(LIMIT_RAM),1) JAVA_ARGS += -Xmx2G endif ifeq ($(USE_JDB),1) JAVA_ARGS += -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 endif ifeq ($(DEBUG),1) JAVA_ARGS += -enableassertions endif # recipes .PHONY: all run jar classes dirs clean all: classes classes: dirs $(JAVAC) $(JAVAC_ARGS) -d build $(SOURCES) # copy resources folder cp -r src/subconscious/res build/subconscious/ .ONESHELL: run: classes cd build $(JAVA) $(JAVA_ARGS) $(MAINCLASS) .ONESHELL: jar: classes cd build jar cfm subconscious.jar ../manifest.txt `find . -type f` dirs: mkdir -p build clean: rm -rd build