mirror of
https://github.com/ralsina/tartrazine.git
synced 2025-05-23 16:40:08 -03:00
64 lines
1.3 KiB
Makefile
64 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
|
|
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) \
|
|
-o $(JARS_DIR) \
|
|
-mode StandaloneJar \
|
|
-runtime JNA;
|
|
|
|
$(RESOURCES_DIR): os-shared-lib
|
|
cp -R $(RESOURCES_SRC) $(RESOURCES_DIR)
|
|
|
|
$(JNAERATOR_JAR): $(RESOURCES_DIR)
|
|
git clone --depth 1 https://github.com/nativelibs4java/jnaerator.git $(JNAERATOR_DIR) && \
|
|
cd $(JNAERATOR_DIR) && \
|
|
git checkout $(JNAERATOR_VERSION) && \
|
|
mvn clean install && \
|
|
mv jnaerator/target/jnaerator-*-shaded.jar ./jnaerator.jar && \
|
|
cd ..;
|
|
|
|
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)
|
|
|