summaryrefslogtreecommitdiffstats
path: root/openpgp-ffi/Makefile
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2019-01-17 11:11:27 +0100
committerJustus Winter <justus@sequoia-pgp.org>2019-01-17 16:48:28 +0100
commit3f58832474a4b270e136544016a401ef773ac065 (patch)
treec617160250c3040ca964c1b72ab5957cd872b82f /openpgp-ffi/Makefile
parent38b4108cc1eac851ac17932c5c33623dd535bebb (diff)
openpgp-ffi: New crate.
- This creates a new crate, 'sequoia-openpgp-ffi', and moves a handful of functions from 'sequoia-ffi' to it. - The 'sequoia-ffi' crate is a superset of the 'sequoia-openpgp-ffi' crate. This is accomplished by some include! magic. - My first attempt involved having 'sequoia-ffi' depend on 'sequoia-openpgp-ffi', so that the former just re-exports the symbols. However, that turned out to be unreliable, and might be not what we want, because it could also duplicate parts of Rust's standard library. - Fixes #144.
Diffstat (limited to 'openpgp-ffi/Makefile')
-rw-r--r--openpgp-ffi/Makefile66
1 files changed, 66 insertions, 0 deletions
diff --git a/openpgp-ffi/Makefile b/openpgp-ffi/Makefile
new file mode 100644
index 00000000..ba4e1d0f
--- /dev/null
+++ b/openpgp-ffi/Makefile
@@ -0,0 +1,66 @@
+# Makefile for Sequoia's bindings.
+
+# Configuration.
+PREFIX ?= /usr/local
+DESTDIR ?=
+
+CARGO ?= cargo
+CARGO_TARGET_DIR ?= $(shell pwd)/../target
+# We currently only support absolute paths.
+CARGO_TARGET_DIR := $(abspath $(CARGO_TARGET_DIR))
+
+VERSION ?= $(shell grep '^version[[:space:]]*=[[:space:]]*' Cargo.toml | cut -d'"' -f2)
+VERSION_MAJOR = $(shell echo $(VERSION) | cut -d'.' -f1)
+
+# Tools.
+INSTALL ?= install
+
+# Make sure subprocesses pick these up.
+export PREFIX
+export DESTDIR
+
+all: build
+
+.PHONY: build
+build:
+ :
+
+# Testing and examples.
+.PHONY: test check
+test check:
+ :
+
+.PHONY: examples
+examples:
+ $(MAKE) -Cexamples
+
+# Installation.
+.PHONY: build-release
+build-release:
+ :
+
+.PHONY: install
+install:
+ $(INSTALL) -d $(DESTDIR)$(PREFIX)/share/pkgconfig
+ sed -e 's|VERSION|$(VERSION)|g' \
+ -e 's|PREFIX|$(PREFIX)|g' \
+ sequoia-openpgp.pc.in \
+ > $(DESTDIR)$(PREFIX)/share/pkgconfig/sequoia-openpgp.pc
+ $(INSTALL) -d $(DESTDIR)$(PREFIX)/include
+ $(INSTALL) -d $(DESTDIR)$(PREFIX)/include/sequoia
+ $(INSTALL) -t $(DESTDIR)$(PREFIX)/include/sequoia \
+ include/sequoia/*.h
+ $(INSTALL) -d $(DESTDIR)$(PREFIX)/lib
+ $(INSTALL) $(CARGO_TARGET_DIR)/release/libsequoia_openpgp_ffi.so \
+ $(DESTDIR)$(PREFIX)/lib/libsequoia_openpgp_ffi.so.$(VERSION)
+ ln -fs libsequoia_openpgp_ffi.so.$(VERSION) \
+ $(DESTDIR)$(PREFIX)/lib/libsequoia_openpgp_ffi.so.$(VERSION_MAJOR)
+ ln -fs libsequoia_openpgp_ffi.so.$(VERSION) \
+ $(DESTDIR)$(PREFIX)/lib/libsequoia_openpgp_ffi.so
+ $(INSTALL) $(CARGO_TARGET_DIR)/release/libsequoia_openpgp_ffi.a \
+ $(DESTDIR)$(PREFIX)/lib/libsequoia_openpgp_ffi.a
+
+# Housekeeping.
+.PHONY: clean
+clean:
+ $(MAKE) -Cexamples clean