Makefaile improvements

Signed-off-by: Vadim A. Misbakh-Soloviov <mva@mva.name>
This commit is contained in:
Vadim A. Misbakh-Soloviov 2014-09-09 23:45:27 +07:00
parent eef74c877b
commit 4340c69bbe

104
Makefile
View File

@ -1,65 +1,69 @@
T=lcurl T=lcurl
#default installtion prefix UNAME ?= $(shell uname)
PREFIX=/usr/local DESTDIR ?= /
PKG_CONFIG ?= pkg-config
INSTALL ?= install
RM ?= rm
LUA_IMPL ?= lua
LUA_BIN ?= $(LUA_IMPL)
CC ?= $(MAC_ENV) gcc
UNAME=$(shell uname)
ifeq ($(UNAME),Linux) ###########################Linux LUA_VERSION = $(shell $(PKG_CONFIG) --print-provides $(LUA_IMPL))
#try to use luajit ifeq ($(LUA_VERSION),)
LUA_VERSION = $(shell pkg-config luajit --print-provides) LUA_CMOD ?= /usr/lib/lua/5.1
ifeq ($(LUA_VERSION),) ###########################Lua LUA_LMOD ?= /usr/share/lua/5.1
LUA_CFLAGS=-I$(PREFIX)/include LIBDIR ?= /usr/lib
LUA_LIBS=-L$(PREFIX)/lib LUA_INC ?= /usr/include
else ###########################Luajit CURL_LIBS = -L/usr/lib -lcurl
LUA_CFLAGS=$(shell pkg-config luajit --cflags) else
LUA_LIBS=$(shell pkg-config luajit --libs) LUA_CMOD ?= $(shell $(PKG_CONFIG) --variable INSTALL_CMOD $(LUA_IMPL))
LUA_LMOD ?= $(shell $(PKG_CONFIG) --variable INSTALL_LMOD $(LUA_IMPL))
LIBDIR ?= $(shell $(PKG_CONFIG) --variable libdir $(LUA_IMPL))
LUA_INC ?= $(shell $(PKG_CONFIG) --variable includedir $(LUA_IMPL))
LUA_LIBS = $(shell $(PKG_CONFIG) --libs $(LUA_IMPL))
CURL_LIBS = $(shell $(PKG_CONFIG) --libs libcurl)
endif endif
CURL_CFLAGS=$(shell pkg-config libcurl --cflags) ifeq ($(UNAME), Linux)
CURL_LIBS=$(shell pkg-config libcurl --libs) OS_FLAGS ?= -shared
endif
CC= gcc -g -fPIC -shared ifeq ($(UNAME), Darwin)
LIB_OPTION= -lrt -ldl OS_FLAGS ?= -bundle -undefined dynamic_lookup
MAC_ENV ?= env MACOSX_DEPLOYMENT_TARGET='10.3'
else #####other platform
LUA_CFLAGS=-I$(PREFIX)/include
LUA_LIBS=-llua5.1
CURL_CFLAGS=-I$(PREFIX)/include
CURL_LIBS=-L$(PREFIX)/lib -lcurl
CC= gcc -g -shared $(CFLAGS)
endif endif
ifeq ($(DEV),)
# System's libraries directory (where binary libraries are installed)
LUA_LIBDIR= $(PREFIX)/lib/lua/5.1
# OS dependent
#LIB_OPTION= -bundle -undefined dynamic_lookup #for MacOS X
LIBNAME= $T.so.$V
# Compilation directives
WARN_MOST= -Wall -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings -pedantic
WARN= -Wall -Wno-unused-value WARN= -Wall -Wno-unused-value
CFLAGS= $(WARN) -DPTHREADS $(LUA_CFLAGS) $(CURL_CFLAGS) else
CC+= $(CFLAGS) WARN= -Wall -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings -pedantic
SRCS=$(shell echo src/*.c) endif
all: $T.so INCLUDES = -I$(LUA_INC)
DEFINES =
LIBS = -lrt -ldl $(CURL_LIBS)
$T.so: $(SRCS) COMMONFLAGS = -O2 -g -pipe -fPIC $(OS_FLAGS)
MACOSX_DEPLOYMENT_TARGET="10.3"; export MACOSX_DEPLOYMENT_TARGET; $(CC) $(CFLAGS) -o $T.so $(SRCS) $(CURL_LIBS) $(LUA_LIBS) $(LIB_OPTION) LF = $(LIBS) $(LDFLAGS)
CF = $(INCLUDES) $(DEFINES) $(COMMONFLAGS) $(WARN) -DPTHREADS $(CFLAGS)
SCR = src/lua/*.lua
SRCS = src/*.c
BIN = $(T).so
all: $(BIN)
$(BIN): $(SRCS)
$(CC) $(CF) -o $@ $^ $(LF)
install: all install: all
mkdir -p $(LUA_LIBDIR) $(INSTALL) -d $(DESTDIR)$(LUA_CMOD) $(DESTDIR)$(LUA_LMOD)
cp $T.so $(LUA_LIBDIR) $(INSTALL) $(BIN) $(DESTDIR)$(LUA_CMOD)
$(INSTALL) $(SCR) $(DESTDIR)$(LUA_LMOD)
clean: clean:
rm -f $T.so $(OBJS) rm -f $(BIN)