summaryrefslogtreecommitdiff
path: root/c_src/Makefile
blob: c7e13672479fa054beb94f3a1e4f2dcad51bc405 (plain)
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
UNAME = $(shell uname)

ifeq ($(UNAME),Darwin)
# Mac OS X 10.10
OS_CFLAGS = -arch x86_64 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DHAVE_COMMON_CRYPTO
OS_SHLIB_LINKFLAGS = -Wl,-F. -bundle -undefined dynamic_lookup
OS_LDFLAGS =
PYTHONLIB = -lpython
else ifeq ($(UNAME),Linux)
# Ubuntu 12
OS_CFLAGS = -I/usr/include/python2.7 -std=gnu99 -fPIC -DHAVE_BSD_COMPAT_LIB
OS_SHLIB_LINKFLAGS =  -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro
OS_LDFLAGS = -lbsd -lrhash
PYTHONLIB = -L/usr/lib/x86_64-linux-gnu -lpython2.7
else
error:
	echo $(UNAME) not supported
endif

LOCAL_CFLAGS =
LOCAL_LDFLAGS =

CC = gcc
CFLAGS = -Wall -Werror -std=gnu99 $(LOCAL_CFLAGS) $(OS_CFLAGS) 
LDFLAGS = $(LOCAL_LDFLAGS) -lnettle $(OS_LDFLAGS)

PORTS = fsynchelper hsmhelper permdbport
OTHER_BIN = permdb.so permdbtest

common_OBJS = erlport.o net_read_write.o
fsynchelper_OBJS = fsynchelper.o $(common_OBJS)
hsmhelper_OBJS = hsmhelper.o pkcs11.o $(common_OBJS)
permdbport_OBJS = permdb.o permdbport.o arlamath.o hash.o $(common_OBJS)
permdbso_OBJS = permdb.o arlamath.o hash.o permdbpy.o $(common_OBJS)
permdbtest_OBJS = permdb.o arlamath.o hash.o permdbtest.o $(common_OBJS)


all: $(PORTS) $(OTHER_BIN)

clean:
	rm -f $(fsynchelper_OBJS) $(hsmhelper_OBJS) $(permdbport_OBJS) $(permdbso_OBJS) $(permdbtest_OBJS) $(PORTS) $(OTHER_BIN)

fsynchelper: $(fsynchelper_OBJS)
	$(CC) -o fsynchelper $(fsynchelper_OBJS) $(LDFLAGS)

hsmhelper: $(hsmhelper_OBJS)
	$(CC) -o hsmhelper $(hsmhelper_OBJS) -ldl $(LDFLAGS)

permdbport: $(permdbport_OBJS)
	$(CC) -o permdbport $(permdbport_OBJS) $(LDFLAGS)

permdb.so: $(permdbso_OBJS)
	$(CC) $(permdbso_OBJS) $(LDFLAGS) $(OS_SHLIB_LINKFLAGS) -o permdb.so

permdbtest: $(permdbtest_OBJS)
	$(CC) $(permdbtest_OBJS) $(LDFLAGS) -o permdbtest

permdb-valgrind:
	valgrind --leak-check=full ./permdbtest /tmp/permdb-valgrind-test 10000 2048 10000