| # Makefile for lsqlite3 library for Lua |
| |
| ifneq "$(shell pkg-config --version)" "" |
| # automagic setup (OS X fink, Linux apt-get, ..) |
| # |
| LUAINC= $(shell pkg-config --cflags lua5.1) |
| LUALIB= $(shell pkg-config --libs lua5.1) |
| SQLITE3INC= $(shell pkg-config --cflags sqlite3) |
| SQLITE3LIB= $(shell pkg-config --libs sqlite3) |
| else |
| # manual setup (change these to reflect your Lua installation) |
| # |
| BASE= /usr/local |
| LUAINC= -I$(BASE)/include |
| LUALIB= |
| SQLITE3INC= -I$(BASE)/include |
| SQLITE3LIB= -L$(BASE)/lib -lsqlite3 |
| # Windows' LUALIB is the same as the Lua executable's directory... |
| # LUALIB= -L$(BASE)/bin -llua51 |
| # |
| POD2HTML= perl -x -S doc/pod2html.pl |
| endif |
| |
| LUAEXE= lua5.1 |
| |
| INSTALL= install -p |
| INSTALLPATH= $(LUAEXE) installpath.lua |
| |
| TMP=./tmp |
| DISTDIR=./archive |
| |
| # OS detection |
| # |
| SHFLAGS=-shared |
| UNAME= $(shell uname) |
| ifeq "$(UNAME)" "Linux" |
| _SO=so |
| SHFLAGS=-shared -fPIC |
| endif |
| ifneq "" "$(findstring BSD,$(UNAME))" |
| _SO=so |
| endif |
| ifneq "" "$(findstring MINGW,$(UNAME))" |
| _SO=dll |
| endif |
| ifeq "$(UNAME)" "Darwin" |
| _SO=so |
| SHFLAGS=-fPIC -arch i686 -arch x86_64 |
| SOFLAGS=-dynamiclib -single_module -undefined dynamic_lookup -arch i686 -arch x86_64 |
| endif |
| ifneq "" "$(findstring msys,$(OSTYPE))" # 'msys' |
| _SO=dll |
| endif |
| |
| ifndef _SO |
| $(error $(UNAME)) |
| $(error Unknown OS) |
| endif |
| |
| # no need to change anything below here - HAH! |
| CFLAGS= $(INCS) $(DEFS) $(WARN) -O2 -fomit-frame-pointer $(SHFLAGS) |
| WARN= -Wall #-ansi -pedantic -Wall |
| INCS= $(LUAINC) $(SQLITE3INC) |
| LIBS= $(LUALIB) $(SQLITE3LIB) |
| |
| MYNAME= sqlite3 |
| MYLIB= l$(MYNAME) |
| |
| VER=$(shell svnversion -c . | sed 's/.*://') |
| TARFILE = $(DISTDIR)/$(MYLIB)-$(VER).tar.gz |
| |
| OBJS= $(MYLIB).o |
| T= $(MYLIB).$(_SO) |
| |
| all: $(T) |
| |
| test: $(T) |
| $(LUAEXE) test.lua |
| $(LUAEXE) tests-sqlite3.lua |
| |
| $(T): $(OBJS) |
| $(CC) $(SHFLAGS) $(SOFLAGS) -o $@ $(OBJS) $(LIBS) |
| |
| install: $(T) |
| $(INSTALL) $< `$(INSTALLPATH) $(MYLIB)` |
| |
| clean: |
| rm -f $(OBJS) $T core core.* a.out test.db |
| |
| html: |
| $(POD2HTML) --title="LuaSQLite 3" --infile=doc/lsqlite3.pod --outfile=doc/lsqlite3.html |
| |
| dist: html |
| echo 'Exporting...' |
| mkdir -p $(TMP) |
| mkdir -p $(DISTDIR) |
| svn export . $(TMP)/$(MYLIB)-$(VER) |
| mkdir -p $(TMP)/$(MYLIB)-$(VER)/doc |
| cp -p doc/lsqlite3.html $(TMP)/$(MYLIB)-$(VER)/doc |
| echo 'Compressing...' |
| tar -zcf $(TARFILE) -C $(TMP) $(MYLIB)-$(VER) |
| rm -fr $(TMP)/$(MYLIB)-$(VER) |
| echo 'Done.' |
| |
| .PHONY: all test clean dist install |