diff --git a/Makefile b/Makefile index b7b9135..de1ff37 100644 --- a/Makefile +++ b/Makefile @@ -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 $ diff --git a/config b/config index 7dd267b..1bbf9df 100644 --- a/config +++ b/config @@ -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 $