# BUILD OPTIONS
#############################################################################
-PLUSPLUS ?= 0
-STATIC ?= 0
-CPU_TYPE ?= native
+CPLUSPLUS ?= 0
+STATIC ?= 0
+CPU_TYPE ?= native
+NO_JAVA ?= 0
+NO_PYTHON ?= 0
#############################################################################
TXT := $(ROOT_DIR)COPYING.txt
DOC := $(ROOT_DIR)README.html
-ifeq ($(PLUSPLUS),1)
+ifeq ($(CPLUSPLUS),1)
CLI_CXX := g++
CLI_SRC := $(wildcard $(ROOT_DIR)/src/*.cpp)
else
JNI_GUI := $(ROOT_DIR)bindings/Java/example/out/MHashJava384-Example.jar
JNI_OUT := $(ROOT_DIR)out/mhash_384.$(ISO_DATE).java-$(OSTYPE)-$(ARCH).tar.gz
+#############################################################################
+# TARGETS
+#############################################################################
+
+TARGETS = $(CLI_OUT)
+
+ifneq ($(NO_JAVA),1)
+ TARGETS += $(JNI_OUT)
+endif
+
#############################################################################
# MAKE RULES
.PHONY: all clean
-all: $(CLI_OUT) $(JNI_OUT)
+all: $(TARGETS)
+
+# -----------------------------------------------
+# PACKAGE
+# -----------------------------------------------
$(CLI_OUT): $(CLI_BIN) $(CLI_DBG) $(DOC) $(TXT)
mkdir -p $(dir $@)
rm -fv $@
tar -czf $@ -C $(dir $(DOC)) $(notdir $(DOC)) -C $(dir $(TXT)) $(notdir $(TXT)) -C $(dir $(JNI_BIN)) $(notdir $(JNI_BIN)) -C $(dir $(JNI_JAR)) $(notdir $(JNI_JAR)) -C $(dir $(JNI_GUI)) $(notdir $(JNI_GUI))
+# -----------------------------------------------
+# COMPILE
+# -----------------------------------------------
+
$(CLI_BIN): $(CLI_SRC)
mkdir -p $(dir $@)
$(CLI_CXX) $(CM_FLAGS) $(RL_FLAGS) -o $@ $^
mkdir -p $(dir $@)
pushd $(dir $^) && ant clean jar
+# -----------------------------------------------
+# DOCUMENTS
+# -----------------------------------------------
+
%.html: %.md
pandoc $(PD_FLAGS) --output $@ $^
+# -----------------------------------------------
+# CLEAN UP
+# -----------------------------------------------
+
clean:
rm -fv $(CLI_BIN) $(CLI_DBG) $(CLI_OUT)
rm -fv $(JNI_BIN) $(JNI_JAR) $(JNI_GUI) $(JNI_OUT)