# Makefile template for SQLite3 JNI Library for Linux (i386/PowerPC)
# NOTE: SQLite ver 3.6.0

CC = gcc
JAVA_HOME = /usr/local/java
JNI_INC = -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
OBJECT_FILES = alter.o analyze.o attach.o auth.o btree.o build.o \
               callback.o complete.o date.o delete.o expr.o func.o \
               hash.o insert.o legacy.o main.o opcodes.o os.o \
               os_unix.o os_win.o pager.o parse.o pragma.o prepare.o \
               printf.o random.o select.o table.o tokenize.o trigger.o \
               update.o utf.o util.o vacuum.o vdbe.o vdbeapi.o \
               vdbeaux.o vdbefifo.o vdbemem.o where.o \
               os_os2.o loadext.o vtab.o \
               bitvec.o btmutex.o fault.o \
               malloc.o mem1.o mem2.o mem3.o mem4.o mem5.o \
               mutex.o mutex_os2.o mutex_unix.o mutex_w32.o opcodes.o \
               vdbeblob.o \
               global.o status.o \
               sqlite3jni_wrap.o

CFLAGS = -Wall -O4 $(JNI_INC) -fPIC \
         -DNDEBUG=1 \
         -DHAVE_FDATASYNC=1 \
         -DTHREADSAFE=1 \
         -DHAVE_USLEEP=1 \
         -DSQLITE_ENABLE_COLUMN_METADATA=1 \
         -DSQLITE_THREADSAFE=1

AR = ar cr
RANLIB = ranlib

all:	libsqlite3jni.a libsqlite3jni.so

.SUFFIXES: .c .o

libsqlite3jni.a: $(OBJECT_FILES)
	$(AR) libsqlite3jni.a $(OBJECT_FILES)
	$(RANLIB) libsqlite3jni.a

libsqlite3jni.so: libsqlite3jni.a $(OBJECT_FILES)
	$(CC) $(CFLAGS) -shared -o $@ $^

#libsqlite3jni.so: $(OBJECT_FILES)
#	$(CC) $(CFLAGS) -shared -o $@ $^

.c.o:
	$(CC) $(CFLAGS) -c $<

alter.o: sqlite3.h
analyze.o: sqlite3.h
attach.o: sqlite3.h
auth.o: sqlite3.h
btree.o: sqlite3.h
build.o: sqlite3.h
callback.o: sqlite3.h
complete.o: sqlite3.h
date.o: sqlite3.h
delete.o: sqlite3.h
expr.o: sqlite3.h
func.o: sqlite3.h
hash.o: sqlite3.h
insert.o: sqlite3.h
legacy.o: sqlite3.h
main.o: sqlite3.h
opcodes.o: sqlite3.h
os.o: sqlite3.h
os_unix.o: sqlite3.h
os_win.o: sqlite3.h
pager.o: sqlite3.h
parse.o: sqlite3.h
pragma.o: sqlite3.h
prepare.o: sqlite3.h
printf.o: sqlite3.h
random.o: sqlite3.h
select.o: sqlite3.h
table.o: sqlite3.h
tokenize.o: sqlite3.h
trigger.o: sqlite3.h
update.o: sqlite3.h
utf.o: sqlite3.h
util.o: sqlite3.h
vacuum.o: sqlite3.h
vdbe.o: sqlite3.h
vdbeapi.o: sqlite3.h
vdbeaux.o: sqlite3.h
vdbefifo.o: sqlite3.h
vdbemem.o: sqlite3.h
where.o: sqlite3.h
os_os2.o: sqlite3.h
loadext.o: sqlite3.h
vtab.o: sqlite3.h
bitvec.o: sqlite3.h
btmutex.o: sqlite3.h
fault.o: sqlite3.h
journal.o: sqlite3.h
malloc.o: sqlite3.h
mem1.o: sqlite3.h
mem2.o: sqlite3.h
mem3.o: sqlite3.h
mem4.o: sqlite3.h
mem5.o: sqlite3.h
mutex.o: sqlite3.h
mutex_os2.o: sqlite3.h
mutex_unix.o: sqlite3.h
mutex_w32.o: sqlite3.h
opcodes.o: sqlite3.h
vdbeblob.o: sqlite3.h
global.o: sqlite3.h
status.o: sqlite3.h
sqlite3jni_wrap.o: sqlite3.h

clean:
	rm -f *.o libsqlite3jni.a libsqlite3jni.so
