Skip to content

Commit 4340c69

Browse files
committed
Makefaile improvements
Signed-off-by: Vadim A. Misbakh-Soloviov <mva@mva.name>
1 parent eef74c8 commit 4340c69

1 file changed

Lines changed: 51 additions & 47 deletions

File tree

Makefile

Lines changed: 51 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,69 @@
11
T=lcurl
22

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)
1727
endif
1828

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
3336

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
3441
endif
3542

43+
INCLUDES = -I$(LUA_INC)
44+
DEFINES =
45+
LIBS = -lrt -ldl $(CURL_LIBS)
3646

47+
COMMONFLAGS = -O2 -g -pipe -fPIC $(OS_FLAGS)
48+
LF = $(LIBS) $(LDFLAGS)
49+
CF = $(INCLUDES) $(DEFINES) $(COMMONFLAGS) $(WARN) -DPTHREADS $(CFLAGS)
3750

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
4053

41-
# OS dependent
54+
BIN = $(T).so
4255

43-
#LIB_OPTION= -bundle -undefined dynamic_lookup #for MacOS X
44-
LIBNAME= $T.so.$V
4556

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

53-
all: $T.so
58+
all: $(BIN)
5459

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

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

6268
clean:
63-
rm -f $T.so $(OBJS)
64-
65-
69+
rm -f $(BIN)

0 commit comments

Comments
 (0)