1 # 2 # Copyright 2008 Sun Microsystems, Inc. All rights reserved. 3 # Use is subject to license terms. 4 # Copyright 2015 Igor Kozhukhov <ikozhukhov@gmail.com> 5 # 6 7 # Make the SO name unlikely to conflict with any other 8 # libsqlite that might also be found on the system. 9 LIBRARY = libsqlite-sys.a 10 11 VERS = .2.8.15 12 OBJECTS = \ 13 attach.o \ 14 auth.o \ 15 btree.o \ 16 btree_rb.o \ 17 build.o \ 18 copy.o \ 19 date.o \ 20 delete.o \ 21 encode.o \ 22 expr.o \ 23 func.o \ 24 hash.o \ 25 insert.o \ 26 main.o \ 27 opcodes.o \ 28 os.o \ 29 pager.o \ 30 parse.o \ 31 pragma.o \ 32 printf.o \ 33 random.o \ 34 select.o \ 35 table.o \ 36 tokenize.o \ 37 trigger.o \ 38 update.o \ 39 util.o \ 40 vacuum.o \ 41 vdbe.o \ 42 vdbeaux.o \ 43 where.o 44 45 include $(SRC)/lib/Makefile.lib 46 47 # install this library in the root filesystem 48 include $(SRC)/lib/Makefile.rootfs 49 50 SRCDIR = ../src 51 TOOLDIR = ../tool 52 $(DYNLIB) := LDLIBS += -lc 53 LIBS = $(DYNLIB) $(LINTLIB) $(NATIVERELOC) 54 55 $(LINTLIB) := SRCS = ../$(LINTSRC) 56 57 # generated sources 58 GENSRC = opcodes.c parse.c 59 60 # all sources 61 SRCS = \ 62 $(GENSRC) \ 63 $(SRCDIR)/attach.c \ 64 $(SRCDIR)/auth.c \ 65 $(SRCDIR)/btree.c \ 66 $(SRCDIR)/btree_rb.c \ 67 $(SRCDIR)/build.c \ 68 $(SRCDIR)/copy.c \ 69 $(SRCDIR)/date.c \ 70 $(SRCDIR)/delete.c \ 71 $(SRCDIR)/encode.c \ 72 $(SRCDIR)/expr.c \ 73 $(SRCDIR)/func.c \ 74 $(SRCDIR)/hash.c \ 75 $(SRCDIR)/insert.c \ 76 $(SRCDIR)/main.c \ 77 $(SRCDIR)/os.c \ 78 $(SRCDIR)/pager.c \ 79 $(SRCDIR)/pragma.c \ 80 $(SRCDIR)/printf.c \ 81 $(SRCDIR)/random.c \ 82 $(SRCDIR)/select.c \ 83 $(SRCDIR)/table.c \ 84 $(SRCDIR)/tokenize.c \ 85 $(SRCDIR)/update.c \ 86 $(SRCDIR)/util.c \ 87 $(SRCDIR)/vacuum.c \ 88 $(SRCDIR)/vdbe.c \ 89 $(SRCDIR)/vdbeaux.c \ 90 $(SRCDIR)/where.c \ 91 $(SRCDIR)/trigger.c 92 93 MYCPPFLAGS = -D_REENTRANT -DTHREADSAFE=1 -DHAVE_USLEEP=1 -I. -I.. -I$(SRCDIR) 94 CPPFLAGS += $(MYCPPFLAGS) 95 96 CERRWARN += -_gcc=-Wno-implicit-function-declaration 97 CERRWARN += -_gcc=-Wno-uninitialized 98 CERRWARN += -_gcc=-Wno-unused-function 99 CERRWARN += -_gcc=-Wno-unused-label 100 101 MAPFILES = ../mapfile-sqlite 102 103 # headers generated here 104 GENHDR = opcodes.h parse.h 105 106 # Header files used by all library source files. 107 # 108 HDR = \ 109 $(GENHDR) \ 110 $(SRCDIR)/btree.h \ 111 $(SRCDIR)/config.h \ 112 $(SRCDIR)/hash.h \ 113 $(SRCDIR)/os.h \ 114 ../sqlite.h \ 115 $(SRCDIR)/sqliteInt.h \ 116 $(SRCDIR)/vdbe.h \ 117 $(SRCDIR)/vdbeInt.h 118 119 # 120 # Sources used for test harness 121 # 122 TESTSRC = \ 123 $(SRCDIR)/tclsqlite.c \ 124 $(SRCDIR)/btree.c \ 125 $(SRCDIR)/func.c \ 126 $(SRCDIR)/os.c \ 127 $(SRCDIR)/pager.c \ 128 $(SRCDIR)/test1.c \ 129 $(SRCDIR)/test2.c \ 130 $(SRCDIR)/test3.c \ 131 $(SRCDIR)/md5.c 132 133 TESTOBJS = $(TESTSRC:$(SRCDIR)/%.c=%.o) 134 135 TESTCLEAN = $(TESTOBJS) test.db test.tcl test1.bt test2.db testdb 136 137 # 138 # Native variant (needed by cmd/configd) 139 # 140 NATIVERELOC = libsqlite-native.o 141 NATIVEPROGS = testfixture 142 NATIVEOBJS = $(OBJS:%.o=%-native.o) 143 144 NATIVETARGETS = $(NATIVEPROGS) $(NATIVEOBJS) $(NATIVERELOC) 145 146 $(NATIVETARGETS) := CC = $(NATIVECC) 147 $(NATIVETARGETS) := LD = $(NATIVELD) 148 $(NATIVETARGETS) := CFLAGS = $(NATIVE_CFLAGS) 149 $(NATIVETARGETS) := CPPFLAGS = $(MYCPPFLAGS) 150 $(NATIVETARGETS) := LDFLAGS = 151 $(NATIVETARGETS) := LDLIBS = -lc 152 153 $(OBJS) := CFLAGS += $(CTF_FLAGS) 154 $(OBJS) := CTFCONVERT_POST = $(CTFCONVERT_O) 155 156 TCLBASE = /usr/sfw 157 TCLVERS = tcl8.3 158 159 testfixture := MYCPPFLAGS += -I$(TCLBASE)/include -DTCLSH -DSQLITE_TEST=1 160 # 161 # work around compiler issues 162 # 163 testfixture := CFLAGS += \ 164 -erroff=E_ARRAY_OF_INCOMPLETE \ 165 -erroff=E_ARG_INCOMPATIBLE_WITH_ARG 166 167 testfixture := LDLIBS += -R$(TCLBASE)/lib -L$(TCLBASE)/lib -l$(TCLVERS) -lm -ldl 168 169 CLEANFILES += \ 170 $(NATIVETARGETS) \ 171 $(TESTCLEAN) \ 172 lemon \ 173 lemon.o \ 174 lempar.c \ 175 opcodes.c \ 176 opcodes.h \ 177 parse_tmp.c \ 178 parse_tmp.h \ 179 parse_tmp.out \ 180 parse_tmp.y \ 181 parse.c \ 182 parse.h 183 184 ENCODING = ISO8859 185 186 187 .PARALLEL: $(OBJS) $(OBJS:%.o=%-native.o) 188 .KEEP_STATE: 189 190 # This is the default Makefile target. The objects listed here 191 # are what get build when you type just "make" with no arguments. 192 # 193 all: $(LIBS) 194 install: all \ 195 $(ROOTLIBDIR)/$(DYNLIB) \ 196 $(ROOTLIBDIR)/$(LINTLIB) \ 197 $(ROOTLIBDIR)/$(NATIVERELOC) 198 199 lint: 200 201 all_h: $(GENHDR) 202 203 $(ROOTLIBDIR)/$(NATIVERELOC) := FILEMODE= 644 204 $(ROOTLINTDIR)/$(LINTLIB) := FILEMODE= 644 205 206 $(ROOTLINK): $(ROOTLIBDIR) $(ROOTLIBDIR)/$(DYNLIB) 207 $(INS.liblink) 208 209 $(ROOTLINTDIR)/%: ../% 210 $(INS.file) 211 212 native: $(NATIVERELOC) 213 214 $(NATIVERELOC): objs .WAIT $(OBJS:%.o=%-native.o) 215 $(LD) -r -o $(NATIVERELOC) $(OBJS:%.o=%-native.o) 216 217 opcodes.h: $(SRCDIR)/vdbe.c 218 @echo "Generating $@"; \ 219 $(RM) -f $@ ; \ 220 echo '/* Automatically generated file. Do not edit */' > $@ ; \ 221 grep '^case OP_' $(SRCDIR)/vdbe.c | \ 222 sed -e 's/://' | \ 223 $(AWK) '{printf "#define %-30s %3d\n", $$2, ++cnt}' >> $@ 224 225 opcodes.c: $(SRCDIR)/vdbe.c 226 @echo "Generating $@"; \ 227 $(RM) -f $@ ; \ 228 echo '/* Automatically generated file. Do not edit */' > $@ ; \ 229 echo 'char *sqliteOpcodeNames[] = { "???", ' >> $@ ; \ 230 grep '^case OP_' $(SRCDIR)/vdbe.c | \ 231 sed -e 's/^.*OP_/ "/' -e 's/:.*$$/", /' >> $@ ; \ 232 echo '};' >> $@ 233 234 testfixture: FRC 235 @if [ -f $(TCLBASE)/include/tcl.h ]; then \ 236 unset SUNPRO_DEPENDENCIES; \ 237 echo $(LINK.c) -o testfixture $(TESTSRC) $(LIBRARY) $(LDLIBS) ;\ 238 exec $(LINK.c) -o testfixture $(TESTSRC) $(LIBRARY) $(LDLIBS) ;\ 239 else \ 240 echo "$(TCLBASE)/include/tcl.h: not found."; \ 241 exit 1; \ 242 fi 243 244 parse.h parse.c : $(SRCDIR)/parse.y $(TOOLDIR)/lemon.c $(TOOLDIR)/lempar.c 245 -$(RM) parse_tmp.y lempar.c 246 $(CP) $(SRCDIR)/parse.y parse_tmp.y 247 $(CP) $(TOOLDIR)/lempar.c lempar.c 248 $(NATIVECC) -o lemon $(TOOLDIR)/lemon.c 249 ./lemon parse_tmp.y 250 -$(RM) parse.c parse.h 251 $(CP) parse_tmp.h parse.h 252 $(CP) parse_tmp.c parse.c 253 254 objs/%-native.o: $(SRCDIR)/%.c $(GENHDR) 255 $(COMPILE.c) -o $@ $< 256 $(POST_PROCESS_O) 257 258 objs/%-native.o: %.c $(GENHDR) 259 $(COMPILE.c) -o $@ $< 260 $(POST_PROCESS_O) 261 262 objs/parse-native.o: parse.c $(GENHDR) 263 $(COMPILE.c) -o $@ parse.c 264 $(POST_PROCESS_O) 265 266 objs/%.o pics/%.o: $(SRCDIR)/%.c $(GENHDR) 267 $(COMPILE.c) -o $@ $< 268 $(POST_PROCESS_O) 269 270 objs/%.o pics/%.o: %.c $(GENHDR) 271 $(COMPILE.c) -o $@ $< 272 $(POST_PROCESS_O) 273 274 # need direct rules for generated files 275 objs/opcodes.o pics/opcodes.o: opcodes.c $(GENHDR) 276 $(COMPILE.c) -o $@ opcodes.c 277 $(POST_PROCESS_O) 278 279 objs/parse.o pics/parse.o: parse.c $(GENHDR) 280 $(COMPILE.c) -o $@ parse.c 281 $(POST_PROCESS_O) 282 283 include $(SRC)/lib/Makefile.targ 284 285 FRC: