You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
4.4 KiB
127 lines
4.4 KiB
# Copyright 2018, pEp Foundation
|
|
# This file is part of pEp JNI Adapter
|
|
# This file may be used under the terms of the GNU General Public License version 3
|
|
# see LICENSE.txt
|
|
|
|
include ../Makefile.conf
|
|
|
|
ifndef JAVA_HOME
|
|
$(error JAVA_HOME is not set!)
|
|
endif
|
|
|
|
JP=$(JAVA_HOME)/bin
|
|
|
|
# Old versions of a Java distribution have a `javah` binary, new versions do not. This checks whether or not `javah` can be found in the Java distribution found in the directory `$JAVA_HOME`.
|
|
NOT_USED:=$(shell which $(JAVA_HOME)/bin/javah)
|
|
ifeq ($(.SHELLSTATUS),0)
|
|
OLD_JAVA=placeholder
|
|
endif
|
|
|
|
LIBRARY=libpEpJNI.a
|
|
JAR=pEp.jar
|
|
|
|
ifeq ($(BUILD_FOR),Linux)
|
|
SHARED=libpEpJNI.so
|
|
else ifeq ($(BUILD_FOR),Darwin)
|
|
SHARED=libpEpJNI.dylib
|
|
else
|
|
$(error I dont know how to build for $(BUILD_FOR).)
|
|
endif
|
|
|
|
JAVA_SOURCES=foundation/pEp/jniadapter/AbstractEngine.java \
|
|
foundation/pEp/jniadapter/Blob.java \
|
|
foundation/pEp/jniadapter/CommType.java \
|
|
foundation/pEp/jniadapter/Identity.java \
|
|
foundation/pEp/jniadapter/Pair.java \
|
|
foundation/pEp/jniadapter/Sync.java \
|
|
foundation/pEp/jniadapter/_Blob.java \
|
|
foundation/pEp/jniadapter/_Identity.java \
|
|
foundation/pEp/jniadapter/pEpException.java \
|
|
foundation/pEp/jniadapter/Message.java \
|
|
foundation/pEp/jniadapter/Engine.java \
|
|
|
|
C_SOURCES=foundation_pEp_jniadapter_Engine.cc \
|
|
foundation_pEp_jniadapter_Engine.h \
|
|
foundation_pEp_jniadapter_Message.cc \
|
|
foundation_pEp_jniadapter_Message.h \
|
|
throw_pEp_exception.cc \
|
|
throw_pEp_exception.hh \
|
|
foundation_pEp_jniadapter_AbstractEngine.h
|
|
|
|
PEP_HEADER:=$(shell $(CXX) $(CXXFLAGS) -E -M get_header.cc | grep -oe '[^[:space:]]*pEpEngine\.h' | head -1)
|
|
|
|
|
|
.PHONY: all
|
|
all: $(JAR) $(SHARED)
|
|
|
|
$(JAR): status_list.yml2 $(JAVA_SOURCES) $(C_SOURCES)
|
|
$(JP)/javac foundation/pEp/jniadapter/*.java
|
|
$(JP)/jar cf $@ foundation/pEp/jniadapter/*.class
|
|
|
|
BLUBB=foundation_pEp_jniadapter_AbstractEngine.h foundation_pEp_jniadapter_Engine.h foundation_pEp_jniadapter_Message.h
|
|
$(BLUBB): foundation_pEp_jniadapter_%.h: foundation/pEp/jniadapter/%.java
|
|
ifdef OLD_JAVA
|
|
$(JP)/javah $(subst /,.,$(subst .java,,$<))
|
|
else
|
|
$(JP)/javac -h . $<
|
|
endif
|
|
|
|
foundation_pEp_jniadapter_AbstractEngine.o: %.o: %.cc %.h throw_pEp_exception.hh jniutils.hh
|
|
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
|
|
foundation_pEp_jniadapter_Engine.o foundation_pEp_jniadapter_Message.o: %.o: %.cc %.h
|
|
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
|
|
$(LIBRARY): foundation_pEp_jniadapter_AbstractEngine.o foundation_pEp_jniadapter_Engine.o foundation_pEp_jniadapter_Message.o throw_pEp_exception.o jniutils.o basic_api.o
|
|
ar -r $@ *.o
|
|
|
|
$(SHARED): $(LIBRARY)
|
|
$(CXX) *.o $(LDFLAGS) $(LDLIBS) -o $@
|
|
|
|
status_list.yml2: pEp.yml2
|
|
bash ../utils/extract_pEp_status_codes_from_engine.sh "$(PEP_HEADER)" $@
|
|
|
|
foundation/pEp/jniadapter/pEpException.java: pEp.yml2 gen_java_exceptions.ysl2 pEp.yml2
|
|
$(YML2_PROC) -y gen_java_exceptions.ysl2 $< -o $@
|
|
|
|
foundation/pEp/jniadapter/Message.java: pEp.yml2 gen_java_Message.ysl2 types_java.ysl2
|
|
$(YML2_PROC) -y gen_java_Message.ysl2 $<
|
|
|
|
foundation/pEp/jniadapter/Engine.java: pEp.yml2 gen_java_Engine.ysl2 types_java.ysl2
|
|
$(YML2_PROC) -y gen_java_Engine.ysl2 $<
|
|
|
|
foundation_pEp_jniadapter_Message.cc: pEp.yml2 gen_cpp_Message.ysl2 types_c.ysl2
|
|
$(YML2_PROC) -y gen_cpp_Message.ysl2 $<
|
|
|
|
foundation_pEp_jniadapter_Engine.cc: pEp.yml2 gen_cpp_Engine.ysl2 types_c.ysl2
|
|
$(YML2_PROC) -y gen_cpp_Engine.ysl2 $<
|
|
|
|
throw_pEp_exception.cc throw_pEp_exception.hh: pEp.yml2 gen_throw_pEp_exception.ysl2 textutils.ysl2
|
|
$(YML2_PROC) -y gen_throw_pEp_exception.ysl2 $< -o throw_pEp_exception.cc
|
|
|
|
throw_pEp_exception.o: throw_pEp_exception.cc throw_pEp_exception.hh
|
|
|
|
basic_api.o: basic_api.cc jniutils.hh throw_pEp_exception.hh
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -f $(JAR) $(LIBRARY) $(SHARED)
|
|
rm -f *.o
|
|
rm -f *.class
|
|
rm -f *.xml *.xsl
|
|
rm -f foundation_pEp_jniadapter_*.h
|
|
rm -f foundation/pEp/jniadapter/*.class
|
|
rm -f foundation/pEp/jniadapter/pEp*.java
|
|
rm -f foundation/pEp/jniadapter/Engine.java
|
|
rm -f foundation/pEp/jniadapter/Message.java
|
|
rm -f foundation/pEp/jniadapter/Color.java
|
|
rm -f foundation/pEp/jniadapter/DecryptFlags.java
|
|
rm -f foundation/pEp/jniadapter/IdentityFlags.java
|
|
rm -f foundation/pEp/jniadapter/Rating.java
|
|
rm -f foundation/pEp/jniadapter/Status.java
|
|
rm -f foundation/pEp/jniadapter/SyncHandshakeResult.java
|
|
rm -f foundation/pEp/jniadapter/SyncHandshakeSignal.java
|
|
rm -f foundation/pEp/jniadapter/CipherSuite.java
|
|
rm -f throw_pEp_exception.*
|
|
rm -f foundation_pEp_jniadapter_Message.cc foundation_pEp_jniadapter_Engine.cc
|
|
rm -f status_list.yml2
|
|
|