tartrazine/java/Makefile
Alexander 13d3d66d37
refactoring: remove un-used code, add go doc, fix ci (#199)
Refactoring, consisting of
 - remove unused method `isAuxiliaryLanguage` and `FileCountList`
   in order to reduce public API surfaces (go/java)
 - add GoDoc to public APIs
 - ci: java profile use latest go src
  It also now mimics https://docs.travis-ci.com/user/languages/go/#go-import-path
  for non-go build image, as code relies on internal imports.

TEST PLAN:
 - make test
2019-02-05 22:54:14 +01:00

63 lines
1.3 KiB
Makefile

JNAERATOR_VERSION=ac73c9e
JARS_DIR=./lib
JAR=$(JARS_DIR)/enry.jar
JNAERATOR_DIR=./.jnaerator
JNAERATOR_JAR=$(JNAERATOR_DIR)/jnaerator.jar
JNAERATOR_JAR_URL="https://jitpack.io/com/github/nativelibs4java/JNAerator/jnaerator/$(JNAERATOR_VERSION)/jnaerator-$(JNAERATOR_VERSION)-shaded.jar"
RESOURCES_SRC=../.shared
RESOURCES_DIR=./shared
HEADER_FILE=$(RESOURCES_DIR)/libenry.h
SHELL := /bin/bash
all: $(JAR)
$(JAR): $(RESOURCES_DIR) $(JNAERATOR_JAR)
mkdir -p lib && \
java -jar $(JNAERATOR_JAR) \
-package tech.sourced.enry.nativelib \
-library enry \
$(HEADER_FILE) \
-I/usr/lib/gcc/x86_64-linux-gnu/4.8/include \
-D__GNUC__=4 \
-o $(JARS_DIR) \
-mode StandaloneJar \
-runtime JNA;
$(RESOURCES_DIR): os-shared-lib
cp -R $(RESOURCES_SRC) $(RESOURCES_DIR)
$(JNAERATOR_JAR): $(RESOURCES_DIR)
mkdir -p $(JNAERATOR_DIR) && \
wget $(JNAERATOR_JAR_URL) -O $(JNAERATOR_JAR)
os-shared-lib:
@os_name="$(shell uname -s)" && \
if [ "$$os_name" == "Linux" ]; then \
$(MAKE) linux-shared; \
elif [ "$$os_name" == "Darwin" ]; then \
$(MAKE) darwin-shared; \
else \
echo "Unsupported operating system, can't build shared library"; \
exit 1; \
fi;
linux-shared:
cd .. && \
$(MAKE) linux-shared
darwin-shared:
cd .. && \
$(MAKE) darwin-shared
test:
./sbt clean test
package:
./sbt clean assembly
clean:
rm -rf $(JAR)
rm -rf $(RESOURCES_DIR)