-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
37 lines (27 loc) · 1.06 KB
/
Makefile
File metadata and controls
37 lines (27 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
PRIV_DIR = $(MIX_APP_PATH)/priv
NIF_LIB = $(PRIV_DIR)/image_ocr_nif.so
ERTS_INCLUDE_DIR ?= $(shell erl -noshell -eval 'io:format("~ts/erts-~ts/include/", [code:root_dir(), erlang:system_info(version)]).' -s init stop)
PKG_CFLAGS = $(shell pkg-config --cflags tesseract lept)
PKG_LDLIBS = $(shell pkg-config --libs tesseract lept)
CXX ?= c++
CXXFLAGS ?= -O3 -fPIC -std=c++17 -Wall -Wextra
CPPFLAGS += -I"$(ERTS_INCLUDE_DIR)" $(PKG_CFLAGS)
LDFLAGS +=
LDLIBS += $(PKG_LDLIBS)
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
LDFLAGS += -dynamiclib -undefined dynamic_lookup -flat_namespace
else
LDFLAGS += -shared
endif
SRC = c_src/image_ocr_nif.cc
all: check_version $(NIF_LIB)
check_version:
@pkg-config --atleast-version=5.0.0 tesseract || \
(echo "ERROR: image_ocr requires tesseract >= 5.0.0 (found $$(pkg-config --modversion tesseract 2>/dev/null || echo none))"; exit 1)
$(NIF_LIB): $(SRC)
@mkdir -p $(PRIV_DIR)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $(SRC) -o $@ $(LDLIBS)
clean:
rm -f $(NIF_LIB)
.PHONY: all clean check_version