xref: /leveldb-1.20/Makefile (revision a53934a3)
169c6d383S[email protected]# Copyright (c) 2011 The LevelDB Authors. All rights reserved.
269c6d383S[email protected]# Use of this source code is governed by a BSD-style license that can be
369c6d383S[email protected]# found in the LICENSE file. See the AUTHORS file for names of contributors.
469c6d383S[email protected]
5c4f55149S[email protected]#-----------------------------------------------
6c4f55149S[email protected]# Uncomment exactly one of the lines labelled (A), (B), and (C) below
7c4f55149S[email protected]# to switch between compilation modes.
8c4f55149S[email protected]
9803d6920SChris Mumford# (A) Production use (optimized mode)
10803d6920SChris MumfordOPT ?= -O2 -DNDEBUG
11803d6920SChris Mumford# (B) Debug mode, w/ full line-level debugging symbols
12803d6920SChris Mumford# OPT ?= -g2
13803d6920SChris Mumford# (C) Profiling mode: opt, but w/debugging symbols
14803d6920SChris Mumford# OPT ?= -O2 -g2 -DNDEBUG
15c4f55149S[email protected]#-----------------------------------------------
16c4f55149S[email protected]
17f57e2335S[email protected]# detect what platform we're building on
1828dad918SDavid Grogan$(shell CC="$(CC)" CXX="$(CXX)" TARGET_OS="$(TARGET_OS)" \
19946e5b5aSDavid Grogan    ./build_detect_platform build_config.mk ./)
2085584d49SSanjay Ghemawat# this file is generated by the previous line to set build flags and sources
21f57e2335S[email protected]include build_config.mk
2269c6d383S[email protected]
23adbe3eb0ScmumfordTESTS = \
24adbe3eb0Scmumford	db/autocompact_test \
25adbe3eb0Scmumford	db/c_test \
26adbe3eb0Scmumford	db/corruption_test \
27adbe3eb0Scmumford	db/db_test \
28adbe3eb0Scmumford	db/dbformat_test \
29adbe3eb0Scmumford	db/fault_injection_test \
30adbe3eb0Scmumford	db/filename_test \
31adbe3eb0Scmumford	db/log_test \
32adbe3eb0Scmumford	db/recovery_test \
33adbe3eb0Scmumford	db/skiplist_test \
34adbe3eb0Scmumford	db/version_edit_test \
35adbe3eb0Scmumford	db/version_set_test \
36adbe3eb0Scmumford	db/write_batch_test \
37adbe3eb0Scmumford	helpers/memenv/memenv_test \
38adbe3eb0Scmumford	issues/issue178_test \
39adbe3eb0Scmumford	issues/issue200_test \
40adbe3eb0Scmumford	table/filter_block_test \
41adbe3eb0Scmumford	table/table_test \
42adbe3eb0Scmumford	util/arena_test \
43adbe3eb0Scmumford	util/bloom_test \
44adbe3eb0Scmumford	util/cache_test \
45adbe3eb0Scmumford	util/coding_test \
46adbe3eb0Scmumford	util/crc32c_test \
47f3f13973Scostan	util/env_posix_test \
48adbe3eb0Scmumford	util/env_test \
49adbe3eb0Scmumford	util/hash_test
50adbe3eb0Scmumford
51adbe3eb0ScmumfordUTILS = \
52adbe3eb0Scmumford	db/db_bench \
53adbe3eb0Scmumford	db/leveldbutil
54adbe3eb0Scmumford
55adbe3eb0Scmumford# Put the object files in a subdirectory, but the application at the top of the object dir.
56adbe3eb0ScmumfordPROGNAMES := $(notdir $(TESTS) $(UTILS))
57adbe3eb0Scmumford
58adbe3eb0Scmumford# On Linux may need libkyotocabinet-dev for dependency.
59adbe3eb0ScmumfordBENCHMARKS = \
60adbe3eb0Scmumford	doc/bench/db_bench_sqlite3 \
61adbe3eb0Scmumford	doc/bench/db_bench_tree_db
62adbe3eb0Scmumford
63bc1ee4d2SSanjay GhemawatCFLAGS += -I. -I./include $(PLATFORM_CCFLAGS) $(OPT)
64bc1ee4d2SSanjay GhemawatCXXFLAGS += -I. -I./include $(PLATFORM_CXXFLAGS) $(OPT)
65ccf0fcd5S[email protected]
66a1ad4d19SSanjay GhemawatLDFLAGS += $(PLATFORM_LDFLAGS)
6740768657SSanjay GhemawatLIBS += $(PLATFORM_LIBS)
68ccf0fcd5S[email protected]
69adbe3eb0ScmumfordSIMULATOR_OUTDIR=out-ios-x86
70adbe3eb0ScmumfordDEVICE_OUTDIR=out-ios-arm
7169c6d383S[email protected]
72803d6920SChris Mumfordifeq ($(PLATFORM), IOS)
73adbe3eb0Scmumford# Note: iOS should probably be using libtool, not ar.
74803d6920SChris MumfordAR=xcrun ar
75adbe3eb0ScmumfordSIMULATORSDK=$(shell xcrun -sdk iphonesimulator --show-sdk-path)
76adbe3eb0ScmumfordDEVICESDK=$(shell xcrun -sdk iphoneos --show-sdk-path)
77adbe3eb0ScmumfordDEVICE_CFLAGS = -isysroot "$(DEVICESDK)" -arch armv6 -arch armv7 -arch armv7s -arch arm64
78adbe3eb0ScmumfordSIMULATOR_CFLAGS = -isysroot "$(SIMULATORSDK)" -arch i686 -arch x86_64
79adbe3eb0ScmumfordSTATIC_OUTDIR=out-ios-universal
80adbe3eb0Scmumfordelse
81adbe3eb0ScmumfordSTATIC_OUTDIR=out-static
82adbe3eb0ScmumfordSHARED_OUTDIR=out-shared
83adbe3eb0ScmumfordSTATIC_PROGRAMS := $(addprefix $(STATIC_OUTDIR)/, $(PROGNAMES))
84adbe3eb0ScmumfordSHARED_PROGRAMS := $(addprefix $(SHARED_OUTDIR)/, db_bench)
85803d6920SChris Mumfordendif
86803d6920SChris Mumford
87adbe3eb0ScmumfordSTATIC_LIBOBJECTS := $(addprefix $(STATIC_OUTDIR)/, $(SOURCES:.cc=.o))
88adbe3eb0ScmumfordSTATIC_MEMENVOBJECTS := $(addprefix $(STATIC_OUTDIR)/, $(MEMENV_SOURCES:.cc=.o))
8969c6d383S[email protected]
90adbe3eb0ScmumfordDEVICE_LIBOBJECTS := $(addprefix $(DEVICE_OUTDIR)/, $(SOURCES:.cc=.o))
91adbe3eb0ScmumfordDEVICE_MEMENVOBJECTS := $(addprefix $(DEVICE_OUTDIR)/, $(MEMENV_SOURCES:.cc=.o))
9269c6d383S[email protected]
93adbe3eb0ScmumfordSIMULATOR_LIBOBJECTS := $(addprefix $(SIMULATOR_OUTDIR)/, $(SOURCES:.cc=.o))
94adbe3eb0ScmumfordSIMULATOR_MEMENVOBJECTS := $(addprefix $(SIMULATOR_OUTDIR)/, $(MEMENV_SOURCES:.cc=.o))
95adbe3eb0Scmumford
96adbe3eb0ScmumfordSHARED_LIBOBJECTS := $(addprefix $(SHARED_OUTDIR)/, $(SOURCES:.cc=.o))
97adbe3eb0ScmumfordSHARED_MEMENVOBJECTS := $(addprefix $(SHARED_OUTDIR)/, $(MEMENV_SOURCES:.cc=.o))
98adbe3eb0Scmumford
99adbe3eb0ScmumfordTESTUTIL := $(STATIC_OUTDIR)/util/testutil.o
100adbe3eb0ScmumfordTESTHARNESS := $(STATIC_OUTDIR)/util/testharness.o $(TESTUTIL)
101adbe3eb0Scmumford
102adbe3eb0ScmumfordSTATIC_TESTOBJS := $(addprefix $(STATIC_OUTDIR)/, $(addsuffix .o, $(TESTS)))
103adbe3eb0ScmumfordSTATIC_UTILOBJS := $(addprefix $(STATIC_OUTDIR)/, $(addsuffix .o, $(UTILS)))
104adbe3eb0ScmumfordSTATIC_ALLOBJS := $(STATIC_LIBOBJECTS) $(STATIC_MEMENVOBJECTS) $(STATIC_TESTOBJS) $(STATIC_UTILOBJS) $(TESTHARNESS)
105adbe3eb0ScmumfordDEVICE_ALLOBJS := $(DEVICE_LIBOBJECTS) $(DEVICE_MEMENVOBJECTS)
106adbe3eb0ScmumfordSIMULATOR_ALLOBJS := $(SIMULATOR_LIBOBJECTS) $(SIMULATOR_MEMENVOBJECTS)
107740d8b3dS[email protected]
108bc1ee4d2SSanjay Ghemawatdefault: all
10969c6d383S[email protected]
110bc1ee4d2SSanjay Ghemawat# Should we build shared libraries?
111bc1ee4d2SSanjay Ghemawatifneq ($(PLATFORM_SHARED_EXT),)
112075a35a6SSanjay Ghemawat
113adbe3eb0Scmumford# Many leveldb test apps use non-exported API's. Only build a subset for testing.
114adbe3eb0ScmumfordSHARED_ALLOBJS := $(SHARED_LIBOBJECTS) $(SHARED_MEMENVOBJECTS) $(TESTHARNESS)
115adbe3eb0Scmumford
116075a35a6SSanjay Ghemawatifneq ($(PLATFORM_SHARED_VERSIONED),true)
117adbe3eb0ScmumfordSHARED_LIB1 = libleveldb.$(PLATFORM_SHARED_EXT)
118adbe3eb0ScmumfordSHARED_LIB2 = $(SHARED_LIB1)
119adbe3eb0ScmumfordSHARED_LIB3 = $(SHARED_LIB1)
120adbe3eb0ScmumfordSHARED_LIBS = $(SHARED_LIB1)
121adbe3eb0ScmumfordSHARED_MEMENVLIB = $(SHARED_OUTDIR)/libmemenv.a
122075a35a6SSanjay Ghemawatelse
123bc1ee4d2SSanjay Ghemawat# Update db.h if you change these.
124adbe3eb0ScmumfordSHARED_VERSION_MAJOR = 1
125*a53934a3ScostanSHARED_VERSION_MINOR = 20
126adbe3eb0ScmumfordSHARED_LIB1 = libleveldb.$(PLATFORM_SHARED_EXT)
127adbe3eb0ScmumfordSHARED_LIB2 = $(SHARED_LIB1).$(SHARED_VERSION_MAJOR)
128adbe3eb0ScmumfordSHARED_LIB3 = $(SHARED_LIB1).$(SHARED_VERSION_MAJOR).$(SHARED_VERSION_MINOR)
129adbe3eb0ScmumfordSHARED_LIBS = $(SHARED_OUTDIR)/$(SHARED_LIB1) $(SHARED_OUTDIR)/$(SHARED_LIB2) $(SHARED_OUTDIR)/$(SHARED_LIB3)
130adbe3eb0Scmumford$(SHARED_OUTDIR)/$(SHARED_LIB1): $(SHARED_OUTDIR)/$(SHARED_LIB3)
131adbe3eb0Scmumford	ln -fs $(SHARED_LIB3) $(SHARED_OUTDIR)/$(SHARED_LIB1)
132adbe3eb0Scmumford$(SHARED_OUTDIR)/$(SHARED_LIB2): $(SHARED_OUTDIR)/$(SHARED_LIB3)
133adbe3eb0Scmumford	ln -fs $(SHARED_LIB3) $(SHARED_OUTDIR)/$(SHARED_LIB2)
134adbe3eb0ScmumfordSHARED_MEMENVLIB = $(SHARED_OUTDIR)/libmemenv.a
135bc1ee4d2SSanjay Ghemawatendif
136bc1ee4d2SSanjay Ghemawat
137adbe3eb0Scmumford$(SHARED_OUTDIR)/$(SHARED_LIB3): $(SHARED_LIBOBJECTS)
138adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(PLATFORM_SHARED_LDFLAGS)$(SHARED_LIB2) $(SHARED_LIBOBJECTS) -o $(SHARED_OUTDIR)/$(SHARED_LIB3) $(LIBS)
139075a35a6SSanjay Ghemawat
140075a35a6SSanjay Ghemawatendif  # PLATFORM_SHARED_EXT
141075a35a6SSanjay Ghemawat
142adbe3eb0Scmumfordall: $(SHARED_LIBS) $(SHARED_PROGRAMS) $(STATIC_OUTDIR)/libleveldb.a $(STATIC_OUTDIR)/libmemenv.a $(STATIC_PROGRAMS)
143bc1ee4d2SSanjay Ghemawat
144adbe3eb0Scmumfordcheck: $(STATIC_PROGRAMS)
145adbe3eb0Scmumford	for t in $(notdir $(TESTS)); do echo "***** Running $$t"; $(STATIC_OUTDIR)/$$t || exit 1; done
14669c6d383S[email protected]
14769c6d383S[email protected]clean:
148adbe3eb0Scmumford	-rm -rf out-static out-shared out-ios-x86 out-ios-arm out-ios-universal
149adbe3eb0Scmumford	-rm -f build_config.mk
150adbe3eb0Scmumford	-rm -rf ios-x86 ios-arm
151740d8b3dS[email protected]
152adbe3eb0Scmumford$(STATIC_OUTDIR):
153adbe3eb0Scmumford	mkdir $@
15469c6d383S[email protected]
155adbe3eb0Scmumford$(STATIC_OUTDIR)/db: | $(STATIC_OUTDIR)
156adbe3eb0Scmumford	mkdir $@
15769c6d383S[email protected]
158adbe3eb0Scmumford$(STATIC_OUTDIR)/helpers/memenv: | $(STATIC_OUTDIR)
159adbe3eb0Scmumford	mkdir -p $@
160f122c6dfS[email protected]
161adbe3eb0Scmumford$(STATIC_OUTDIR)/port: | $(STATIC_OUTDIR)
162adbe3eb0Scmumford	mkdir $@
163f122c6dfS[email protected]
164adbe3eb0Scmumford$(STATIC_OUTDIR)/table: | $(STATIC_OUTDIR)
165adbe3eb0Scmumford	mkdir $@
166ea2e9195SSanjay Ghemawat
167adbe3eb0Scmumford$(STATIC_OUTDIR)/util: | $(STATIC_OUTDIR)
168adbe3eb0Scmumford	mkdir $@
16969c6d383S[email protected]
170adbe3eb0Scmumford.PHONY: STATIC_OBJDIRS
171adbe3eb0ScmumfordSTATIC_OBJDIRS: \
172adbe3eb0Scmumford	$(STATIC_OUTDIR)/db \
173adbe3eb0Scmumford	$(STATIC_OUTDIR)/port \
174adbe3eb0Scmumford	$(STATIC_OUTDIR)/table \
175adbe3eb0Scmumford	$(STATIC_OUTDIR)/util \
176adbe3eb0Scmumford	$(STATIC_OUTDIR)/helpers/memenv
177748539c1SDavid Grogan
178adbe3eb0Scmumford$(SHARED_OUTDIR):
179adbe3eb0Scmumford	mkdir $@
18085584d49SSanjay Ghemawat
181adbe3eb0Scmumford$(SHARED_OUTDIR)/db: | $(SHARED_OUTDIR)
182adbe3eb0Scmumford	mkdir $@
183021ee9c3S[email protected]
184adbe3eb0Scmumford$(SHARED_OUTDIR)/helpers/memenv: | $(SHARED_OUTDIR)
185adbe3eb0Scmumford	mkdir -p $@
18669c6d383S[email protected]
187adbe3eb0Scmumford$(SHARED_OUTDIR)/port: | $(SHARED_OUTDIR)
188adbe3eb0Scmumford	mkdir $@
18969c6d383S[email protected]
190adbe3eb0Scmumford$(SHARED_OUTDIR)/table: | $(SHARED_OUTDIR)
191adbe3eb0Scmumford	mkdir $@
19269c6d383S[email protected]
193adbe3eb0Scmumford$(SHARED_OUTDIR)/util: | $(SHARED_OUTDIR)
194adbe3eb0Scmumford	mkdir $@
19569c6d383S[email protected]
196adbe3eb0Scmumford.PHONY: SHARED_OBJDIRS
197adbe3eb0ScmumfordSHARED_OBJDIRS: \
198adbe3eb0Scmumford	$(SHARED_OUTDIR)/db \
199adbe3eb0Scmumford	$(SHARED_OUTDIR)/port \
200adbe3eb0Scmumford	$(SHARED_OUTDIR)/table \
201adbe3eb0Scmumford	$(SHARED_OUTDIR)/util \
202adbe3eb0Scmumford	$(SHARED_OUTDIR)/helpers/memenv
20369c6d383S[email protected]
204adbe3eb0Scmumford$(DEVICE_OUTDIR):
205adbe3eb0Scmumford	mkdir $@
20669c6d383S[email protected]
207adbe3eb0Scmumford$(DEVICE_OUTDIR)/db: | $(DEVICE_OUTDIR)
208adbe3eb0Scmumford	mkdir $@
20969c6d383S[email protected]
210adbe3eb0Scmumford$(DEVICE_OUTDIR)/helpers/memenv: | $(DEVICE_OUTDIR)
211adbe3eb0Scmumford	mkdir -p $@
212b234f65bSChris Mumford
213adbe3eb0Scmumford$(DEVICE_OUTDIR)/port: | $(DEVICE_OUTDIR)
214adbe3eb0Scmumford	mkdir $@
21569c6d383S[email protected]
216adbe3eb0Scmumford$(DEVICE_OUTDIR)/table: | $(DEVICE_OUTDIR)
217adbe3eb0Scmumford	mkdir $@
21885584d49SSanjay Ghemawat
219adbe3eb0Scmumford$(DEVICE_OUTDIR)/util: | $(DEVICE_OUTDIR)
220adbe3eb0Scmumford	mkdir $@
221803d6920SChris Mumford
222adbe3eb0Scmumford.PHONY: DEVICE_OBJDIRS
223adbe3eb0ScmumfordDEVICE_OBJDIRS: \
224adbe3eb0Scmumford	$(DEVICE_OUTDIR)/db \
225adbe3eb0Scmumford	$(DEVICE_OUTDIR)/port \
226adbe3eb0Scmumford	$(DEVICE_OUTDIR)/table \
227adbe3eb0Scmumford	$(DEVICE_OUTDIR)/util \
228adbe3eb0Scmumford	$(DEVICE_OUTDIR)/helpers/memenv
2297b094f12SDavid Grogan
230adbe3eb0Scmumford$(SIMULATOR_OUTDIR):
231adbe3eb0Scmumford	mkdir $@
2320b9a89f4SDavid Grogan
233adbe3eb0Scmumford$(SIMULATOR_OUTDIR)/db: | $(SIMULATOR_OUTDIR)
234adbe3eb0Scmumford	mkdir $@
23569c6d383S[email protected]
236adbe3eb0Scmumford$(SIMULATOR_OUTDIR)/helpers/memenv: | $(SIMULATOR_OUTDIR)
237adbe3eb0Scmumford	mkdir -p $@
238ac1d69daSSanjay Ghemawat
239adbe3eb0Scmumford$(SIMULATOR_OUTDIR)/port: | $(SIMULATOR_OUTDIR)
240adbe3eb0Scmumford	mkdir $@
24169c6d383S[email protected]
242adbe3eb0Scmumford$(SIMULATOR_OUTDIR)/table: | $(SIMULATOR_OUTDIR)
243adbe3eb0Scmumford	mkdir $@
24469c6d383S[email protected]
245adbe3eb0Scmumford$(SIMULATOR_OUTDIR)/util: | $(SIMULATOR_OUTDIR)
246adbe3eb0Scmumford	mkdir $@
24769c6d383S[email protected]
248adbe3eb0Scmumford.PHONY: SIMULATOR_OBJDIRS
249adbe3eb0ScmumfordSIMULATOR_OBJDIRS: \
250adbe3eb0Scmumford	$(SIMULATOR_OUTDIR)/db \
251adbe3eb0Scmumford	$(SIMULATOR_OUTDIR)/port \
252adbe3eb0Scmumford	$(SIMULATOR_OUTDIR)/table \
253adbe3eb0Scmumford	$(SIMULATOR_OUTDIR)/util \
254adbe3eb0Scmumford	$(SIMULATOR_OUTDIR)/helpers/memenv
255ccf0fcd5S[email protected]
256adbe3eb0Scmumford$(STATIC_ALLOBJS): | STATIC_OBJDIRS
257adbe3eb0Scmumford$(DEVICE_ALLOBJS): | DEVICE_OBJDIRS
258adbe3eb0Scmumford$(SIMULATOR_ALLOBJS): | SIMULATOR_OBJDIRS
259adbe3eb0Scmumford$(SHARED_ALLOBJS): | SHARED_OBJDIRS
260213a68ebSHans Wennborg
261740d8b3dS[email protected]ifeq ($(PLATFORM), IOS)
262adbe3eb0Scmumford$(DEVICE_OUTDIR)/libleveldb.a: $(DEVICE_LIBOBJECTS)
263adbe3eb0Scmumford	rm -f $@
264adbe3eb0Scmumford	$(AR) -rs $@ $(DEVICE_LIBOBJECTS)
265adbe3eb0Scmumford
266adbe3eb0Scmumford$(SIMULATOR_OUTDIR)/libleveldb.a: $(SIMULATOR_LIBOBJECTS)
267adbe3eb0Scmumford	rm -f $@
268adbe3eb0Scmumford	$(AR) -rs $@ $(SIMULATOR_LIBOBJECTS)
269adbe3eb0Scmumford
270adbe3eb0Scmumford$(DEVICE_OUTDIR)/libmemenv.a: $(DEVICE_MEMENVOBJECTS)
271adbe3eb0Scmumford	rm -f $@
272adbe3eb0Scmumford	$(AR) -rs $@ $(DEVICE_MEMENVOBJECTS)
273adbe3eb0Scmumford
274adbe3eb0Scmumford$(SIMULATOR_OUTDIR)/libmemenv.a: $(SIMULATOR_MEMENVOBJECTS)
275adbe3eb0Scmumford	rm -f $@
276adbe3eb0Scmumford	$(AR) -rs $@ $(SIMULATOR_MEMENVOBJECTS)
277adbe3eb0Scmumford
278adbe3eb0Scmumford# For iOS, create universal object libraries to be used on both the simulator and
279740d8b3dS[email protected]# a device.
280adbe3eb0Scmumford$(STATIC_OUTDIR)/libleveldb.a: $(STATIC_OUTDIR) $(DEVICE_OUTDIR)/libleveldb.a $(SIMULATOR_OUTDIR)/libleveldb.a
281adbe3eb0Scmumford	lipo -create $(DEVICE_OUTDIR)/libleveldb.a $(SIMULATOR_OUTDIR)/libleveldb.a -output $@
28285f0ab19S[email protected]
283adbe3eb0Scmumford$(STATIC_OUTDIR)/libmemenv.a: $(STATIC_OUTDIR) $(DEVICE_OUTDIR)/libmemenv.a $(SIMULATOR_OUTDIR)/libmemenv.a
284adbe3eb0Scmumford	lipo -create $(DEVICE_OUTDIR)/libmemenv.a $(SIMULATOR_OUTDIR)/libmemenv.a -output $@
285740d8b3dS[email protected]else
286adbe3eb0Scmumford$(STATIC_OUTDIR)/libleveldb.a:$(STATIC_LIBOBJECTS)
287adbe3eb0Scmumford	rm -f $@
288adbe3eb0Scmumford	$(AR) -rs $@ $(STATIC_LIBOBJECTS)
289adbe3eb0Scmumford
290adbe3eb0Scmumford$(STATIC_OUTDIR)/libmemenv.a:$(STATIC_MEMENVOBJECTS)
291adbe3eb0Scmumford	rm -f $@
292adbe3eb0Scmumford	$(AR) -rs $@ $(STATIC_MEMENVOBJECTS)
293adbe3eb0Scmumfordendif
294adbe3eb0Scmumford
295adbe3eb0Scmumford$(SHARED_MEMENVLIB):$(SHARED_MEMENVOBJECTS)
296adbe3eb0Scmumford	rm -f $@
297adbe3eb0Scmumford	$(AR) -rs $@ $(SHARED_MEMENVOBJECTS)
298adbe3eb0Scmumford
299adbe3eb0Scmumford$(STATIC_OUTDIR)/db_bench:db/db_bench.cc $(STATIC_LIBOBJECTS) $(TESTUTIL)
300adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/db_bench.cc $(STATIC_LIBOBJECTS) $(TESTUTIL) -o $@ $(LIBS)
301adbe3eb0Scmumford
302adbe3eb0Scmumford$(STATIC_OUTDIR)/db_bench_sqlite3:doc/bench/db_bench_sqlite3.cc $(STATIC_LIBOBJECTS) $(TESTUTIL)
303adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) doc/bench/db_bench_sqlite3.cc $(STATIC_LIBOBJECTS) $(TESTUTIL) -o $@ -lsqlite3 $(LIBS)
304adbe3eb0Scmumford
305adbe3eb0Scmumford$(STATIC_OUTDIR)/db_bench_tree_db:doc/bench/db_bench_tree_db.cc $(STATIC_LIBOBJECTS) $(TESTUTIL)
306adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) doc/bench/db_bench_tree_db.cc $(STATIC_LIBOBJECTS) $(TESTUTIL) -o $@ -lkyotocabinet $(LIBS)
307adbe3eb0Scmumford
308adbe3eb0Scmumford$(STATIC_OUTDIR)/leveldbutil:db/leveldbutil.cc $(STATIC_LIBOBJECTS)
309adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/leveldbutil.cc $(STATIC_LIBOBJECTS) -o $@ $(LIBS)
310adbe3eb0Scmumford
311adbe3eb0Scmumford$(STATIC_OUTDIR)/arena_test:util/arena_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
312adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) util/arena_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
313adbe3eb0Scmumford
314adbe3eb0Scmumford$(STATIC_OUTDIR)/autocompact_test:db/autocompact_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
315adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/autocompact_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
316adbe3eb0Scmumford
317adbe3eb0Scmumford$(STATIC_OUTDIR)/bloom_test:util/bloom_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
318adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) util/bloom_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
319adbe3eb0Scmumford
320adbe3eb0Scmumford$(STATIC_OUTDIR)/c_test:$(STATIC_OUTDIR)/db/c_test.o $(STATIC_LIBOBJECTS) $(TESTHARNESS)
321adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(STATIC_OUTDIR)/db/c_test.o $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
322adbe3eb0Scmumford
323adbe3eb0Scmumford$(STATIC_OUTDIR)/cache_test:util/cache_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
324adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) util/cache_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
325adbe3eb0Scmumford
326adbe3eb0Scmumford$(STATIC_OUTDIR)/coding_test:util/coding_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
327adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) util/coding_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
328adbe3eb0Scmumford
329adbe3eb0Scmumford$(STATIC_OUTDIR)/corruption_test:db/corruption_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
330adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/corruption_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
331adbe3eb0Scmumford
332adbe3eb0Scmumford$(STATIC_OUTDIR)/crc32c_test:util/crc32c_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
333adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) util/crc32c_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
334adbe3eb0Scmumford
335adbe3eb0Scmumford$(STATIC_OUTDIR)/db_test:db/db_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
336adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/db_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
337adbe3eb0Scmumford
338adbe3eb0Scmumford$(STATIC_OUTDIR)/dbformat_test:db/dbformat_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
339adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/dbformat_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
340adbe3eb0Scmumford
341f3f13973Scostan$(STATIC_OUTDIR)/env_posix_test:util/env_posix_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
342f3f13973Scostan	$(CXX) $(LDFLAGS) $(CXXFLAGS) util/env_posix_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
343f3f13973Scostan
344adbe3eb0Scmumford$(STATIC_OUTDIR)/env_test:util/env_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
345adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) util/env_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
346adbe3eb0Scmumford
347adbe3eb0Scmumford$(STATIC_OUTDIR)/fault_injection_test:db/fault_injection_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
348adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/fault_injection_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
349adbe3eb0Scmumford
350adbe3eb0Scmumford$(STATIC_OUTDIR)/filename_test:db/filename_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
351adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/filename_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
352adbe3eb0Scmumford
353adbe3eb0Scmumford$(STATIC_OUTDIR)/filter_block_test:table/filter_block_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
354adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) table/filter_block_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
355adbe3eb0Scmumford
356adbe3eb0Scmumford$(STATIC_OUTDIR)/hash_test:util/hash_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
357adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) util/hash_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
358adbe3eb0Scmumford
359adbe3eb0Scmumford$(STATIC_OUTDIR)/issue178_test:issues/issue178_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
360adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) issues/issue178_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
361adbe3eb0Scmumford
362adbe3eb0Scmumford$(STATIC_OUTDIR)/issue200_test:issues/issue200_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
363adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) issues/issue200_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
364adbe3eb0Scmumford
365adbe3eb0Scmumford$(STATIC_OUTDIR)/log_test:db/log_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
366adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/log_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
367adbe3eb0Scmumford
368adbe3eb0Scmumford$(STATIC_OUTDIR)/recovery_test:db/recovery_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
369adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/recovery_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
370adbe3eb0Scmumford
371adbe3eb0Scmumford$(STATIC_OUTDIR)/table_test:table/table_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
372adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) table/table_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
373adbe3eb0Scmumford
374adbe3eb0Scmumford$(STATIC_OUTDIR)/skiplist_test:db/skiplist_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
375adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/skiplist_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
376adbe3eb0Scmumford
377adbe3eb0Scmumford$(STATIC_OUTDIR)/version_edit_test:db/version_edit_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
378adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/version_edit_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
379adbe3eb0Scmumford
380adbe3eb0Scmumford$(STATIC_OUTDIR)/version_set_test:db/version_set_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
381adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/version_set_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
382adbe3eb0Scmumford
383adbe3eb0Scmumford$(STATIC_OUTDIR)/write_batch_test:db/write_batch_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS)
384adbe3eb0Scmumford	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/write_batch_test.cc $(STATIC_LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
385adbe3eb0Scmumford
386adbe3eb0Scmumford$(STATIC_OUTDIR)/memenv_test:$(STATIC_OUTDIR)/helpers/memenv/memenv_test.o $(STATIC_OUTDIR)/libmemenv.a $(STATIC_OUTDIR)/libleveldb.a $(TESTHARNESS)
387adbe3eb0Scmumford	$(XCRUN) $(CXX) $(LDFLAGS) $(STATIC_OUTDIR)/helpers/memenv/memenv_test.o $(STATIC_OUTDIR)/libmemenv.a $(STATIC_OUTDIR)/libleveldb.a $(TESTHARNESS) -o $@ $(LIBS)
388adbe3eb0Scmumford
389adbe3eb0Scmumford$(SHARED_OUTDIR)/db_bench:$(SHARED_OUTDIR)/db/db_bench.o $(SHARED_LIBS) $(TESTUTIL)
390adbe3eb0Scmumford	$(XCRUN) $(CXX) $(LDFLAGS) $(CXXFLAGS) $(PLATFORM_SHARED_CFLAGS) $(SHARED_OUTDIR)/db/db_bench.o $(TESTUTIL) $(SHARED_OUTDIR)/$(SHARED_LIB3) -o $@ $(LIBS)
391adbe3eb0Scmumford
392adbe3eb0Scmumford.PHONY: run-shared
393adbe3eb0Scmumfordrun-shared: $(SHARED_OUTDIR)/db_bench
394adbe3eb0Scmumford	LD_LIBRARY_PATH=$(SHARED_OUTDIR) $(SHARED_OUTDIR)/db_bench
395adbe3eb0Scmumford
396adbe3eb0Scmumford$(SIMULATOR_OUTDIR)/%.o: %.cc
397adbe3eb0Scmumford	xcrun -sdk iphonesimulator $(CXX) $(CXXFLAGS) $(SIMULATOR_CFLAGS) -c $< -o $@
398adbe3eb0Scmumford
399adbe3eb0Scmumford$(DEVICE_OUTDIR)/%.o: %.cc
400adbe3eb0Scmumford	xcrun -sdk iphoneos $(CXX) $(CXXFLAGS) $(DEVICE_CFLAGS) -c $< -o $@
401adbe3eb0Scmumford
402adbe3eb0Scmumford$(SIMULATOR_OUTDIR)/%.o: %.c
403adbe3eb0Scmumford	xcrun -sdk iphonesimulator $(CC) $(CFLAGS) $(SIMULATOR_CFLAGS) -c $< -o $@
404adbe3eb0Scmumford
405adbe3eb0Scmumford$(DEVICE_OUTDIR)/%.o: %.c
406adbe3eb0Scmumford	xcrun -sdk iphoneos $(CC) $(CFLAGS) $(DEVICE_CFLAGS) -c $< -o $@
407adbe3eb0Scmumford
408adbe3eb0Scmumford$(STATIC_OUTDIR)/%.o: %.cc
409bc1ee4d2SSanjay Ghemawat	$(CXX) $(CXXFLAGS) -c $< -o $@
410021ee9c3S[email protected]
411adbe3eb0Scmumford$(STATIC_OUTDIR)/%.o: %.c
412bc1ee4d2SSanjay Ghemawat	$(CC) $(CFLAGS) -c $< -o $@
413adbe3eb0Scmumford
414adbe3eb0Scmumford$(SHARED_OUTDIR)/%.o: %.cc
415adbe3eb0Scmumford	$(CXX) $(CXXFLAGS) $(PLATFORM_SHARED_CFLAGS) -c $< -o $@
416adbe3eb0Scmumford
417adbe3eb0Scmumford$(SHARED_OUTDIR)/%.o: %.c
418adbe3eb0Scmumford	$(CC) $(CFLAGS) $(PLATFORM_SHARED_CFLAGS) -c $< -o $@
419ea175e28Scostan
420ea175e28Scostan$(STATIC_OUTDIR)/port/port_posix_sse.o: port/port_posix_sse.cc
421ea175e28Scostan	$(CXX) $(CXXFLAGS) $(PLATFORM_SSEFLAGS) -c $< -o $@
422ea175e28Scostan
423ea175e28Scostan$(SHARED_OUTDIR)/port/port_posix_sse.o: port/port_posix_sse.cc
424ea175e28Scostan	$(CXX) $(CXXFLAGS) $(PLATFORM_SHARED_CFLAGS) $(PLATFORM_SSEFLAGS) -c $< -o $@
425