forked from zhaozg/lua-openssl
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
109 lines (92 loc) · 2.89 KB
/
Copy pathMakefile
File metadata and controls
109 lines (92 loc) · 2.89 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
T=openssl
PREFIX ?=/usr/local
CC := $(CROSS)$(CC)
AR := $(CROSS)$(AR)
LD := $(CROSS)$(LD)
#OS auto detect
ifneq (,$(TARGET_SYS))
SYS := $(TARGET_SYS)
else
SYS := $(shell gcc -dumpmachine)
endif
#Lua auto detect
ifneq (iOS,$SYS)
LUA_VERSION ?= $(shell pkg-config luajit --print-provides)
ifeq ($(LUA_VERSION),)
############ use lua
LUAV ?= $(shell lua -e "_,_,v=string.find(_VERSION,'Lua (.+)');print(v)")
LUA_CFLAGS ?= -I$(PREFIX)/include/lua$(LUAV)
LUA_LIBS ?= -L$(PREFIX)/lib
LUA_LIBDIR ?= $(PREFIX)/lib/lua/$(LUAV)
else
############ use luajit
LUAV ?= $(shell luajit -e "_,_,v=string.find(_VERSION,'Lua (.+)');print(v)")
LUA_CFLAGS ?= $(shell pkg-config luajit --cflags)
LUA_LIBS ?= $(shell pkg-config luajit --libs)
LUA_LIBDIR ?= $(PREFIX)/lib/lua/$(LUAV)
endif
else
LUA_CFLAGS ?= $(shell pkg-config luajit --cflags)
LUA_LIBS ?= $(shell pkg-config luajit --libs)
endif
#OpenSSL auto detect
OPENSSL_CFLAGS ?= $(shell pkg-config openssl --cflags)
OPENSSL_LIBS ?= $(shell pkg-config openssl --static --libs)
ifneq (, $(findstring linux, $(SYS)))
# Do linux things
CFLAGS = -fpic
LDFLAGS = -Wl,--no-undefined -fpic -lrt -ldl -lm
endif
ifneq (, $(findstring apple, $(SYS)))
# Do darwin things
CFLAGS = -fPIC
LDFLAGS = -fPIC -bundle -undefined dynamic_lookup -ldl
MACOSX_DEPLOYMENT_TARGET="10.3"
CC := MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(CC)
endif
ifneq (, $(findstring mingw, $(SYS)))
# Do mingw things
CFLAGS = -DLUA_LIB -DLUA_BUILD_AS_DLL -DWIN32_LEAN_AND_MEAN
endif
ifneq (, $(findstring cygwin, $(SYS)))
# Do cygwin things
CFLAGS = -fPIC
endif
ifneq (, $(findstring iOS, $(SYS)))
# Do iOS things
CFLAGS = -fPIC
LDFLAGS = -fPIC -ldl
endif
#custom config
ifeq (.config, $(wildcard .config))
include .config
endif
LIBNAME= $T.so.$V
CFLAGS += $(OPENSSL_CFLAGS) $(LUA_CFLAGS) $(TARGET_FLAGS)
LDFLAGS += -shared $(OPENSSL_LIBS) $(LUA_LIBS)
# Compilation directives
WARN_MIN = -Wall -Wno-unused-value
WARN = -Wall
WARN_MOST = $(WARN) -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings -pedantic
CFLAGS += -g $(WARN_MIN) -DPTHREADS -Ideps -Ideps/lua-compat/c-api
OBJS=src/asn1.o src/auxiliar.o src/bio.o src/cipher.o src/cms.o src/compat.o src/crl.o src/csr.o src/dh.o src/digest.o src/dsa.o \
src/ec.o src/engine.o src/hmac.o src/lbn.o src/lhash.o src/misc.o src/ocsp.o src/openssl.o src/ots.o src/pkcs12.o src/pkcs7.o \
src/pkey.o src/rsa.o src/ssl.o src/th-lock.o src/util.o src/x509.o src/xattrs.o src/xexts.o src/xname.o src/xstore.o src/xalgor.o src/callback.o
.c.o:
$(CC) $(CFLAGS) -c -o $@ $?
all: $T.so
@echo "Target system: "$(SYS)
$T.so: lib$T.a
$(CC) -o $@ src/openssl.o -L. -l$T $(LDFLAGS)
lib$T.a: $(OBJS)
$(AR) rcs $@ $?
install: all
mkdir -p $(LUA_LIBDIR)
cp $T.so $(LUA_LIBDIR)
info:
@echo "Target system: "$(SYS)
@echo "CC:" $(CC)
@echo "AR:" $(AR)
@echo "PREFIX:" $(PREFIX)
clean:
rm -f $T.so lib$T.a $(OBJS)