1#
2# This Makefile is designed for use with main.mk in the root directory of
3# this project. After including main.mk, the users makefile should contain:
4#
5#    LSMDIR=$(TOP)/ext/lsm1/
6#    LSMOPTS=-fPIC
7#    include $(LSMDIR)/Makefile
8#
9# The most useful targets are [lsmtest] and [lsm.so].
10#
11
12LSMOBJ    = \
13  lsm_ckpt.o \
14  lsm_file.o \
15  lsm_log.o \
16  lsm_main.o \
17  lsm_mem.o \
18  lsm_mutex.o \
19  lsm_shared.o \
20  lsm_sorted.o \
21  lsm_str.o \
22  lsm_tree.o \
23  lsm_unix.o \
24  lsm_win32.o \
25  lsm_varint.o \
26  lsm_vtab.o
27
28LSMHDR   = \
29  $(LSMDIR)/lsm.h \
30  $(LSMDIR)/lsmInt.h
31
32LSMTESTSRC = $(LSMDIR)/lsm-test/lsmtest1.c $(LSMDIR)/lsm-test/lsmtest2.c     \
33             $(LSMDIR)/lsm-test/lsmtest3.c $(LSMDIR)/lsm-test/lsmtest4.c     \
34             $(LSMDIR)/lsm-test/lsmtest5.c $(LSMDIR)/lsm-test/lsmtest6.c     \
35             $(LSMDIR)/lsm-test/lsmtest7.c $(LSMDIR)/lsm-test/lsmtest8.c     \
36             $(LSMDIR)/lsm-test/lsmtest9.c                                   \
37             $(LSMDIR)/lsm-test/lsmtest_datasource.c \
38             $(LSMDIR)/lsm-test/lsmtest_func.c $(LSMDIR)/lsm-test/lsmtest_io.c  \
39             $(LSMDIR)/lsm-test/lsmtest_main.c $(LSMDIR)/lsm-test/lsmtest_mem.c \
40             $(LSMDIR)/lsm-test/lsmtest_tdb.c $(LSMDIR)/lsm-test/lsmtest_tdb3.c \
41             $(LSMDIR)/lsm-test/lsmtest_util.c $(LSMDIR)/lsm-test/lsmtest_win32.c
42
43
44# all: lsm.so
45
46LSMOPTS += -fPIC -DLSM_MUTEX_PTHREADS=1 -I$(LSMDIR) -DHAVE_ZLIB
47
48lsm.so:	$(LSMOBJ)
49	$(TCCX) -shared -fPIC -o lsm.so $(LSMOBJ)
50
51%.o:	$(LSMDIR)/%.c $(LSMHDR) sqlite3.h
52	$(TCCX) $(LSMOPTS) -c $<
53
54lsmtest$(EXE): $(LSMOBJ) $(LSMTESTSRC) $(LSMTESTHDR) sqlite3.o
55	# $(TCPPX) -c $(TOP)/lsm-test/lsmtest_tdb2.cc
56	$(TCCX) $(LSMOPTS) $(LSMTESTSRC) $(LSMOBJ) sqlite3.o -o lsmtest$(EXE) $(THREADLIB) -lz
57