|
1 | 1 | T=lcurl |
2 | 2 |
|
3 | | -#default installtion prefix |
4 | | -PREFIX=/usr/local |
5 | | - |
6 | | -UNAME=$(shell uname) |
7 | | - |
8 | | -ifeq ($(UNAME),Linux) ###########################Linux |
9 | | -#try to use luajit |
10 | | -LUA_VERSION = $(shell pkg-config luajit --print-provides) |
11 | | -ifeq ($(LUA_VERSION),) ###########################Lua |
12 | | -LUA_CFLAGS=-I$(PREFIX)/include |
13 | | -LUA_LIBS=-L$(PREFIX)/lib |
14 | | -else ###########################Luajit |
15 | | -LUA_CFLAGS=$(shell pkg-config luajit --cflags) |
16 | | -LUA_LIBS=$(shell pkg-config luajit --libs) |
| 3 | +UNAME ?= $(shell uname) |
| 4 | +DESTDIR ?= / |
| 5 | +PKG_CONFIG ?= pkg-config |
| 6 | +INSTALL ?= install |
| 7 | +RM ?= rm |
| 8 | +LUA_IMPL ?= lua |
| 9 | +LUA_BIN ?= $(LUA_IMPL) |
| 10 | +CC ?= $(MAC_ENV) gcc |
| 11 | + |
| 12 | + |
| 13 | +LUA_VERSION = $(shell $(PKG_CONFIG) --print-provides $(LUA_IMPL)) |
| 14 | +ifeq ($(LUA_VERSION),) |
| 15 | +LUA_CMOD ?= /usr/lib/lua/5.1 |
| 16 | +LUA_LMOD ?= /usr/share/lua/5.1 |
| 17 | +LIBDIR ?= /usr/lib |
| 18 | +LUA_INC ?= /usr/include |
| 19 | +CURL_LIBS = -L/usr/lib -lcurl |
| 20 | +else |
| 21 | +LUA_CMOD ?= $(shell $(PKG_CONFIG) --variable INSTALL_CMOD $(LUA_IMPL)) |
| 22 | +LUA_LMOD ?= $(shell $(PKG_CONFIG) --variable INSTALL_LMOD $(LUA_IMPL)) |
| 23 | +LIBDIR ?= $(shell $(PKG_CONFIG) --variable libdir $(LUA_IMPL)) |
| 24 | +LUA_INC ?= $(shell $(PKG_CONFIG) --variable includedir $(LUA_IMPL)) |
| 25 | +LUA_LIBS = $(shell $(PKG_CONFIG) --libs $(LUA_IMPL)) |
| 26 | +CURL_LIBS = $(shell $(PKG_CONFIG) --libs libcurl) |
17 | 27 | endif |
18 | 28 |
|
19 | | -CURL_CFLAGS=$(shell pkg-config libcurl --cflags) |
20 | | -CURL_LIBS=$(shell pkg-config libcurl --libs) |
21 | | - |
22 | | -CC= gcc -g -fPIC -shared |
23 | | -LIB_OPTION= -lrt -ldl |
24 | | - |
25 | | -else #####other platform |
26 | | - |
27 | | -LUA_CFLAGS=-I$(PREFIX)/include |
28 | | -LUA_LIBS=-llua5.1 |
29 | | -CURL_CFLAGS=-I$(PREFIX)/include |
30 | | -CURL_LIBS=-L$(PREFIX)/lib -lcurl |
31 | | - |
32 | | -CC= gcc -g -shared $(CFLAGS) |
| 29 | +ifeq ($(UNAME), Linux) |
| 30 | +OS_FLAGS ?= -shared |
| 31 | +endif |
| 32 | +ifeq ($(UNAME), Darwin) |
| 33 | +OS_FLAGS ?= -bundle -undefined dynamic_lookup |
| 34 | +MAC_ENV ?= env MACOSX_DEPLOYMENT_TARGET='10.3' |
| 35 | +endif |
33 | 36 |
|
| 37 | +ifeq ($(DEV),) |
| 38 | +WARN= -Wall -Wno-unused-value |
| 39 | +else |
| 40 | +WARN= -Wall -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings -pedantic |
34 | 41 | endif |
35 | 42 |
|
| 43 | +INCLUDES = -I$(LUA_INC) |
| 44 | +DEFINES = |
| 45 | +LIBS = -lrt -ldl $(CURL_LIBS) |
36 | 46 |
|
| 47 | +COMMONFLAGS = -O2 -g -pipe -fPIC $(OS_FLAGS) |
| 48 | +LF = $(LIBS) $(LDFLAGS) |
| 49 | +CF = $(INCLUDES) $(DEFINES) $(COMMONFLAGS) $(WARN) -DPTHREADS $(CFLAGS) |
37 | 50 |
|
38 | | -# System's libraries directory (where binary libraries are installed) |
39 | | -LUA_LIBDIR= $(PREFIX)/lib/lua/5.1 |
| 51 | +SCR = src/lua/*.lua |
| 52 | +SRCS = src/*.c |
40 | 53 |
|
41 | | -# OS dependent |
| 54 | +BIN = $(T).so |
42 | 55 |
|
43 | | -#LIB_OPTION= -bundle -undefined dynamic_lookup #for MacOS X |
44 | | -LIBNAME= $T.so.$V |
45 | 56 |
|
46 | | -# Compilation directives |
47 | | -WARN_MOST= -Wall -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings -pedantic |
48 | | -WARN= -Wall -Wno-unused-value |
49 | | -CFLAGS= $(WARN) -DPTHREADS $(LUA_CFLAGS) $(CURL_CFLAGS) |
50 | | -CC+= $(CFLAGS) |
51 | | -SRCS=$(shell echo src/*.c) |
52 | 57 |
|
53 | | -all: $T.so |
| 58 | +all: $(BIN) |
54 | 59 |
|
55 | | -$T.so: $(SRCS) |
56 | | - MACOSX_DEPLOYMENT_TARGET="10.3"; export MACOSX_DEPLOYMENT_TARGET; $(CC) $(CFLAGS) -o $T.so $(SRCS) $(CURL_LIBS) $(LUA_LIBS) $(LIB_OPTION) |
| 60 | +$(BIN): $(SRCS) |
| 61 | + $(CC) $(CF) -o $@ $^ $(LF) |
57 | 62 |
|
58 | 63 | install: all |
59 | | - mkdir -p $(LUA_LIBDIR) |
60 | | - cp $T.so $(LUA_LIBDIR) |
| 64 | + $(INSTALL) -d $(DESTDIR)$(LUA_CMOD) $(DESTDIR)$(LUA_LMOD) |
| 65 | + $(INSTALL) $(BIN) $(DESTDIR)$(LUA_CMOD) |
| 66 | + $(INSTALL) $(SCR) $(DESTDIR)$(LUA_LMOD) |
61 | 67 |
|
62 | 68 | clean: |
63 | | - rm -f $T.so $(OBJS) |
64 | | - |
65 | | - |
| 69 | + rm -f $(BIN) |
0 commit comments