| 1 | ifneq (,$(wildcard ../../build/config.mk)) |
|---|
| 2 | include ../../build/config.mk |
|---|
| 3 | include ../../build/module.mk |
|---|
| 4 | include ../../build/gccconfig.mk |
|---|
| 5 | else |
|---|
| 6 | include standalone.mk |
|---|
| 7 | endif |
|---|
| 8 | |
|---|
| 9 | AXTLS_VERSION = 1.2.1 |
|---|
| 10 | AXTLS_DIR = axTLS |
|---|
| 11 | AXTLS_FILE = $(AXTLS_DIR)-$(AXTLS_VERSION).tar.gz |
|---|
| 12 | NIXIO_TLS ?= openssl |
|---|
| 13 | NIXIO_SHADOW ?= $(shell echo 'int main(void){ return !getspnam("root"); }' | $(CC) -include shadow.h -xc -o/dev/null - 2>/dev/null && echo yes) |
|---|
| 14 | NIXIO_SO = nixio.so |
|---|
| 15 | NIXIO_LDFLAGS = |
|---|
| 16 | |
|---|
| 17 | ifeq (,$(findstring Darwin,$(OS))) |
|---|
| 18 | NIXIO_LDFLAGS += -lcrypt |
|---|
| 19 | else |
|---|
| 20 | EXTRA_CFLAGS += -D__DARWIN__ |
|---|
| 21 | endif |
|---|
| 22 | |
|---|
| 23 | NIXIO_OBJ = src/nixio.o src/socket.o src/sockopt.o src/bind.o src/address.o \ |
|---|
| 24 | src/poll.o src/io.o src/file.o src/splice.o src/process.o src/syslog.o \ |
|---|
| 25 | src/bit.o src/binary.o src/fs.o src/user.o \ |
|---|
| 26 | $(if $(NIXIO_TLS),src/tls-crypto.o src/tls-context.o src/tls-socket.o,) |
|---|
| 27 | |
|---|
| 28 | ifeq ($(NIXIO_TLS),axtls) |
|---|
| 29 | TLS_CFLAGS = -IaxTLS/ssl -IaxTLS/crypto -IaxTLS/config -include src/axtls-compat.h |
|---|
| 30 | TLS_DEPENDS = src/axtls-compat.o |
|---|
| 31 | NIXIO_OBJ += src/axtls-compat.o src/libaxtls.a |
|---|
| 32 | endif |
|---|
| 33 | |
|---|
| 34 | ifeq ($(NIXIO_TLS),openssl) |
|---|
| 35 | NIXIO_LDFLAGS += -lssl |
|---|
| 36 | endif |
|---|
| 37 | |
|---|
| 38 | ifeq ($(NIXIO_TLS),cyassl) |
|---|
| 39 | NIXIO_LDFLAGS += -lcyassl |
|---|
| 40 | TLS_DEPENDS = src/cyassl-compat.o |
|---|
| 41 | TLS_CFLAGS = -include src/cyassl-compat.h |
|---|
| 42 | NIXIO_OBJ += src/cyassl-compat.o |
|---|
| 43 | endif |
|---|
| 44 | |
|---|
| 45 | ifeq ($(NIXIO_TLS),) |
|---|
| 46 | NIXIO_CFLAGS += -DNO_TLS |
|---|
| 47 | endif |
|---|
| 48 | |
|---|
| 49 | ifneq ($(NIXIO_SHADOW),yes) |
|---|
| 50 | NIXIO_CFLAGS += -DNO_SHADOW |
|---|
| 51 | endif |
|---|
| 52 | |
|---|
| 53 | |
|---|
| 54 | ifeq ($(OS),SunOS) |
|---|
| 55 | NIXIO_LDFLAGS += -lsocket -lnsl -lsendfile |
|---|
| 56 | endif |
|---|
| 57 | |
|---|
| 58 | ifneq (,$(findstring MINGW,$(OS))$(findstring mingw,$(OS))$(findstring Windows,$(OS))) |
|---|
| 59 | NIXIO_CROSS_CC:=$(shell which i586-mingw32msvc-cc) |
|---|
| 60 | ifneq (,$(NIXIO_CROSS_CC)) |
|---|
| 61 | CC:=$(NIXIO_CROSS_CC) |
|---|
| 62 | endif |
|---|
| 63 | NIXIO_OBJ += src/mingw-compat.o |
|---|
| 64 | NIXIO_LDFLAGS_POST:=-llua -lssl -lcrypto -lws2_32 -lgdi32 |
|---|
| 65 | FPIC:= |
|---|
| 66 | EXTRA_CFLAGS += -D_WIN32_WINNT=0x0501 |
|---|
| 67 | LUA_CFLAGS:= |
|---|
| 68 | NIXIO_SO:=nixio.dll |
|---|
| 69 | NIXIO_LDFLAGS:= |
|---|
| 70 | endif |
|---|
| 71 | |
|---|
| 72 | |
|---|
| 73 | %.o: %.c |
|---|
| 74 | $(COMPILE) $(NIXIO_CFLAGS) $(LUA_CFLAGS) $(FPIC) -c -o $@ $< |
|---|
| 75 | |
|---|
| 76 | ifneq ($(NIXIO_TLS),) |
|---|
| 77 | src/tls-crypto.o: $(TLS_DEPENDS) src/tls-crypto.c |
|---|
| 78 | $(COMPILE) $(NIXIO_CFLAGS) $(LUA_CFLAGS) $(FPIC) $(TLS_CFLAGS) -c -o $@ src/tls-crypto.c |
|---|
| 79 | |
|---|
| 80 | src/tls-context.o: $(TLS_DEPENDS) src/tls-context.c |
|---|
| 81 | $(COMPILE) $(NIXIO_CFLAGS) $(LUA_CFLAGS) $(FPIC) $(TLS_CFLAGS) -c -o $@ src/tls-context.c |
|---|
| 82 | |
|---|
| 83 | src/tls-socket.o: $(TLS_DEPENDS) src/tls-socket.c |
|---|
| 84 | $(COMPILE) $(NIXIO_CFLAGS) $(LUA_CFLAGS) $(FPIC) $(TLS_CFLAGS) -c -o $@ src/tls-socket.c |
|---|
| 85 | |
|---|
| 86 | src/axtls-compat.o: src/libaxtls.a src/axtls-compat.c |
|---|
| 87 | $(COMPILE) $(NIXIO_CFLAGS) $(LUA_CFLAGS) $(FPIC) $(TLS_CFLAGS) -c -o $@ src/axtls-compat.c |
|---|
| 88 | mkdir -p dist |
|---|
| 89 | cp -pR axtls-root/* dist/ |
|---|
| 90 | endif |
|---|
| 91 | |
|---|
| 92 | compile: $(NIXIO_OBJ) |
|---|
| 93 | $(LINK) $(SHLIB_FLAGS) $(NIXIO_LDFLAGS) -o src/$(NIXIO_SO) $(NIXIO_OBJ) $(NIXIO_LDFLAGS_POST) |
|---|
| 94 | mkdir -p dist$(LUA_LIBRARYDIR) |
|---|
| 95 | cp src/$(NIXIO_SO) dist$(LUA_LIBRARYDIR)/$(NIXIO_SO) |
|---|
| 96 | |
|---|
| 97 | $(AXTLS_DIR)/.prepared: |
|---|
| 98 | #rm -rf $(AXTLS_DIR) |
|---|
| 99 | #tar xvfz $(AXTLS_FILE) |
|---|
| 100 | cp axtls-config/.config axtls-config/config.h $(AXTLS_DIR)/config |
|---|
| 101 | touch $@ |
|---|
| 102 | |
|---|
| 103 | src/libaxtls.a: $(AXTLS_DIR)/.prepared |
|---|
| 104 | $(MAKE) -C $(AXTLS_DIR) CC="$(CC)" CFLAGS="$(CFLAGS) $(EXTRA_CFLAGS) $(FPIC) -Wall -pedantic -I../config -I../ssl -I../crypto" LDFLAGS="$(LDFLAGS)" OS="$(OS)" clean all |
|---|
| 105 | cp -p $(AXTLS_DIR)/_stage/libaxtls.a src |
|---|
| 106 | # ************************************************************************* |
|---|
| 107 | # |
|---|
| 108 | # |
|---|
| 109 | # |
|---|
| 110 | # *** WARNING *** |
|---|
| 111 | # The use of the axTLS cryptographical provider is discouraged! |
|---|
| 112 | # Please switch to either CyaSSL or OpenSSL. |
|---|
| 113 | # Support for axTLS might be removed in the near future. |
|---|
| 114 | # |
|---|
| 115 | # |
|---|
| 116 | # |
|---|
| 117 | #************************************************************************** |
|---|
| 118 | |
|---|
| 119 | clean: luaclean |
|---|
| 120 | rm -f src/*.o src/*.so src/*.a src/*.dll |
|---|
| 121 | rm -f $(AXTLS_DIR)/.prepared |
|---|
| 122 | |
|---|
| 123 | install: build |
|---|
| 124 | cp -pR dist$(LUA_MODULEDIR)/* $(LUA_MODULEDIR) |
|---|
| 125 | cp -pR dist$(LUA_LIBRARYDIR)/* $(LUA_LIBRARYDIR) |
|---|