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) 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