Improved *nix makefile

Much easier to build drivers now. No need to edit the config file to
switch between driver builds
master
Scott Morgan 2015-08-13 18:34:00 +01:00
parent fc11132618
commit 9ddfc9fb1c
2 changed files with 64 additions and 76 deletions

View File

@ -3,35 +3,37 @@ CONFIG= ./config
include $(CONFIG)
OBJS= src/luasql.o src/ls_$T.o
OBJS= src/luasql.o
SRCS= src/luasql.h src/luasql.c
# list of all driver names
DRIVER_LIST= $(subst src/ls_,,$(basename $(wildcard src/ls_*.c)))
SRCS= src/luasql.h src/luasql.c \
src/ls_firebird.c \
src/ls_postgres.c \
src/ls_odbc.c \
src/ls_oci8.c \
src/ls_mysql.c \
src/ls_sqlite.c \
src/ls_sqlite3.c
# used for help formatting
EMPTY=
SPACE= $(EMPTY) $(EMPTY)
AR= ar rcu
RANLIB= ranlib
all :
@echo "usage: make { $(subst $(SPACE),$(SPACE)|$(SPACE),$(DRIVER_LIST)) }"
# explicity matches against the list of avilable driver names
$(DRIVER_LIST) : % : src/%.so
lib: src/$(LIBNAME)
# builds the specified driver
src/%.so : src/ls_%.c $(OBJS)
$(CC) $(CFLAGS) src/ls_$*.c -o $@ $(LIB_OPTION) $(OBJS) $(DRIVER_INCS_$*) $(DRIVER_LIBS_$*)
src/$(LIBNAME): $(OBJS)
export MACOSX_DEPLOYMENT_TARGET="10.3"; $(CC) $(CFLAGS) -o $@ $(LIB_OPTION) $(OBJS) $(DRIVER_LIBS)
# builds the general LuaSQL functions
$(OBJS) : $(SRCS)
$(CC) $(CFLAGS) -c src/luasql.c -o src/luasql.o
install:
mkdir -p $(LUA_LIBDIR)/luasql
cp src/$(LIBNAME) $(LUA_LIBDIR)/luasql
cp src/*.so $(LUA_LIBDIR)/luasql
jdbc_driver:
cd src/jdbc; make $@
clean:
rm -f src/$(LIBNAME) src/*.o
rm -f src/*.so src/*.o
# $Id: Makefile,v 1.56 2008/05/30 17:21:18 tomas Exp $

104
config
View File

@ -1,68 +1,54 @@
# $Id: config,v 1.10 2008/05/30 17:21:18 tomas Exp $
# Driver (leave uncommented ONLY the line with the name of the driver)
T= mysql
#T= oci8
#T= odbc
#T= postgres
#T= sqlite
#T=sqlite3
#T=firebird
# Installation directories
# Default prefix
PREFIX = /usr/local
PREFIX ?= /usr
# System's libraries directory (where binary libraries are installed)
LUA_LIBDIR= $(PREFIX)/lib/lua/5.1
# System's lua directory (where Lua libraries are installed)
LUA_DIR= $(PREFIX)/share/lua/5.1
# Lua includes directory
LUA_INC= $(PREFIX)/include
# Lua version number (first and second digits of target version)
LUA_VERSION_NUM= 501
# Lua version and dirs
LUA_SYS_VER ?= 5.2
LUA_LIBDIR ?= $(PREFIX)/lib/lua/$(LUA_SYS_VER)
LUA_DIR ?= $(PREFIX)/share/lua/$(LUA_SYS_VER)
LUA_INC ?= $(PREFIX)/include/lua$(LUA_SYS_VER)
# OS dependent
LIB_OPTION= -shared #for Linux
#LIB_OPTION= -bundle -undefined dynamic_lookup #for MacOS X
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin) # MacOS
LIB_OPTION ?= -bundle -undefined dynamic_lookup -mmacosx-version-min=10.3
else # Linux/BSD
LIB_OPTION ?= -shared
endif
LIBNAME= $T.so
# driver specific params
# - MySQL
#DRIVER_LIBS_mysql ?= -L/usr/local/mysql/lib -lmysqlclient -lz
#DRIVER_INCS_mysql ?= -I/usr/local/mysql/include
DRIVER_LIBS_mysql ?= -L/usr/lib -lmysqlclient -lz
DRIVER_INCS_mysql ?= -I/usr/include/mysql
# - Oracle OCI8
DRIVER_LIBS_oci8 ?= -L/home/oracle/OraHome1/lib -lz -lclntsh
DRIVER_INCS_oci8 ?= -I/home/oracle/OraHome1/rdbms/demo \
-I/home/oracle/OraHome1/rdbms/public
# - PostgreSQL
#DRIVER_LIBS_postgres ?= -L/usr/local/pgsql/lib -lpq
#DRIVER_INCS_postgres ?= -I/usr/local/pgsql/include/
DRIVER_LIBS_postgres ?= -L/usr/lib -lpq
DRIVER_INCS_postgres ?= -I/usr/include/postgresql
# - SQLite
DRIVER_LIBS_sqlite ?= -lsqlite
DRIVER_INCS_sqlite ?=
# - SQLite3
DRIVER_LIBS_sqlite3 ?= -L/opt/local/lib -lsqlite3
DRIVER_INCS_sqlite3 ?= -I/opt/local/include
# - ODBC
DRIVER_LIBS_odbc ?= -L/usr/local/lib -lodbc
DRIVER_INCS_odbc ?= -DUNIXODBC -I/usr/local/include
# - Firebird
DRIVER_LIBS_firebird ?= -L/usr/local/firebird -lfbclient
DRIVER_INCS_firebird ?=
# Compilation parameters
# Driver specific
######## MySQL
#DRIVER_LIBS= -L/usr/local/mysql/lib -lmysqlclient -lz
#DRIVER_INCS= -I/usr/local/mysql/include
DRIVER_LIBS= -L/usr/lib -lmysqlclient -lz
DRIVER_INCS= -I/usr/include/mysql
######## Oracle OCI8
#DRIVER_LIBS= -L/home/oracle/OraHome1/lib -lz -lclntsh
#DRIVER_INCS= -I/home/oracle/OraHome1/rdbms/demo -I/home/oracle/OraHome1/rdbms/public
######## PostgreSQL
#DRIVER_LIBS= -L/usr/local/pgsql/lib -lpq
#DRIVER_INCS= -I/usr/local/pgsql/include/
#DRIVER_LIBS= -L/usr/lib -lpq
#DRIVER_INCS= -I/usr/include/postgresql
######## SQLite
#DRIVER_LIBS= -lsqlite
#DRIVER_INCS=
######## SQLite3
#DRIVER_LIBS= -L/opt/local/lib -lsqlite3
#DRIVER_INCS= -I/opt/local/include
######## ODBC
#DRIVER_LIBS= -L/usr/local/lib -lodbc
#DRIVER_INCS= -DUNIXODBC -I/usr/local/include
######## Firebird
#DRIVER_LIBS= -L/usr/local/firebird -lfbclient
#DRIVER_INCS=
WARN= -Wall -Wmissing-prototypes -Wmissing-declarations -ansi -pedantic
INCS= -I$(LUA_INC)
CFLAGS= -O2 $(WARN) -fPIC $(DRIVER_INCS) $(INCS) -DLUASQL_VERSION_NUMBER='"$V"' $(DEFS)
# general compilation parameters
WARN = -Wall -Wmissing-prototypes -Wmissing-declarations -pedantic
INCS = -I$(LUA_INC)
DEFS =
CFLAGS = -O2 -std=gnu99 $(WARN) -fPIC $(DRIVER_INCS) $(INCS) \
-DLUASQL_VERSION_NUMBER='"$V"' $(DEFS)
CC= gcc
# $Id: config,v 1.10 2008/05/30 17:21:18 tomas Exp $