22# Use of this source code is governed by a BSD-style license that can be
33# found in the LICENSE file. See the AUTHORS file for names of contributors.
44
5+ # Inherit some settings from environment variables, if available
56CXX ?= g++
67CC ?= gcc
8+ INSTALL_PATH ?= $(CURDIR )
79
810# -----------------------------------------------
911# Uncomment exactly one of the lines labelled (A), (B), and (C) below
@@ -19,8 +21,8 @@ $(shell sh ./build_detect_platform)
1921# this file is generated by build_detect_platform to set build flags and sources
2022include build_config.mk
2123
22- CFLAGS += -c - I. -I./include $(PLATFORM_CCFLAGS ) $(OPT )
23- CXXFLAGS += -c - I. -I./include $(PLATFORM_CXXFLAGS ) $(OPT )
24+ CFLAGS += -I. -I./include $(PLATFORM_CCFLAGS ) $(OPT )
25+ CXXFLAGS += -I. -I./include $(PLATFORM_CXXFLAGS ) $(OPT )
2426
2527LDFLAGS += $(PLATFORM_LDFLAGS )
2628
@@ -55,15 +57,33 @@ BENCHMARKS = db_bench_sqlite3 db_bench_tree_db
5557LIBRARY = libleveldb.a
5658MEMENVLIBRARY = libmemenv.a
5759
58- all : $(LIBRARY )
60+ default : all
61+
62+ # Should we build shared libraries?
63+ ifneq ($(PLATFORM_SHARED_EXT ) ,)
64+ # Update db.h if you change these.
65+ SHARED_MAJOR = 1
66+ SHARED_MINOR = 3
67+ SHARED1 = libleveldb.$(PLATFORM_SHARED_EXT )
68+ SHARED2 = $(SHARED1 ) .$(SHARED_MAJOR )
69+ SHARED3 = $(SHARED1 ) .$(SHARED_MAJOR ) .$(SHARED_MINOR )
70+ SHARED = $(SHARED1 ) $(SHARED2 ) $(SHARED3 )
71+ $(SHARED3 ) :
72+ $(CXX ) $(LDFLAGS ) $(PLATFORM_SHARED_LDFLAGS )$(INSTALL_PATH ) /$(SHARED2 ) $(CXXFLAGS ) $(PLATFORM_SHARED_CFLAGS ) $(SOURCES ) -o $(SHARED3 )
73+ $(SHARED2 ) : $(SHARED3 )
74+ ln -fs $(SHARED3 ) $(SHARED2 )
75+ $(SHARED1 ) : $(SHARED3 )
76+ ln -fs $(SHARED3 ) $(SHARED1 )
77+ endif
78+
79+ all : $(SHARED ) $(LIBRARY )
5980
60- check : $(PROGRAMS ) $(TESTS )
81+ check : all $(PROGRAMS ) $(TESTS )
6182 for t in $( TESTS) ; do echo " ***** Running $$ t" ; ./$$ t || exit 1; done
6283
6384clean :
64- -rm -f $(PROGRAMS ) $(BENCHMARKS ) $(LIBRARY ) $(MEMENVLIBRARY ) * /* .o * /* /* .o ios-x86/* /* .o ios-arm/* /* .o
85+ -rm -f $(PROGRAMS ) $(BENCHMARKS ) $(LIBRARY ) $(SHARED ) $( MEMENVLIBRARY ) * /* .o * /* /* .o ios-x86/* /* .o ios-arm/* /* .o build_config.mk
6586 -rm -rf ios-x86/* ios-arm/*
66- -rm build_config.mk
6787
6888$(LIBRARY ) : $(LIBOBJECTS )
6989 rm -f $@
@@ -142,22 +162,22 @@ IOSVERSION=$(shell defaults read /Developer/Platforms/iPhoneOS.platform/version
142162
143163.cc.o :
144164 mkdir -p ios-x86/$(dir $@ )
145- $(SIMULATORROOT ) /usr/bin/$(CXX ) $(CXXFLAGS ) -isysroot $(SIMULATORROOT ) /SDKs/iPhoneSimulator$(IOSVERSION ) .sdk -arch i686 $< -o ios-x86/$@
165+ $(SIMULATORROOT ) /usr/bin/$(CXX ) $(CXXFLAGS ) -isysroot $(SIMULATORROOT ) /SDKs/iPhoneSimulator$(IOSVERSION ) .sdk -arch i686 -c $< -o ios-x86/$@
146166 mkdir -p ios-arm/$(dir $@ )
147- $(DEVICEROOT ) /usr/bin/$(CXX ) $(CXXFLAGS ) -isysroot $(DEVICEROOT ) /SDKs/iPhoneOS$(IOSVERSION ) .sdk -arch armv6 -arch armv7 $< -o ios-arm/$@
167+ $(DEVICEROOT ) /usr/bin/$(CXX ) $(CXXFLAGS ) -isysroot $(DEVICEROOT ) /SDKs/iPhoneOS$(IOSVERSION ) .sdk -arch armv6 -arch armv7 -c $< -o ios-arm/$@
148168 lipo ios-x86/$@ ios-arm/$@ -create -output $@
149169
150170.c.o :
151171 mkdir -p ios-x86/$(dir $@ )
152- $(SIMULATORROOT ) /usr/bin/$(CC ) $(CFLAGS ) -isysroot $(SIMULATORROOT ) /SDKs/iPhoneSimulator$(IOSVERSION ) .sdk -arch i686 $< -o ios-x86/$@
172+ $(SIMULATORROOT ) /usr/bin/$(CC ) $(CFLAGS ) -isysroot $(SIMULATORROOT ) /SDKs/iPhoneSimulator$(IOSVERSION ) .sdk -arch i686 -c $< -o ios-x86/$@
153173 mkdir -p ios-arm/$(dir $@ )
154- $(DEVICEROOT ) /usr/bin/$(CC ) $(CFLAGS ) -isysroot $(DEVICEROOT ) /SDKs/iPhoneOS$(IOSVERSION ) .sdk -arch armv6 -arch armv7 $< -o ios-arm/$@
174+ $(DEVICEROOT ) /usr/bin/$(CC ) $(CFLAGS ) -isysroot $(DEVICEROOT ) /SDKs/iPhoneOS$(IOSVERSION ) .sdk -arch armv6 -arch armv7 -c $< -o ios-arm/$@
155175 lipo ios-x86/$@ ios-arm/$@ -create -output $@
156176
157177else
158178.cc.o :
159- $(CXX ) $(CXXFLAGS ) $< -o $@
179+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
160180
161181.c.o :
162- $(CC ) $(CFLAGS ) $< -o $@
182+ $(CC ) $(CFLAGS ) -c $< -o $@
163183endif
0 commit comments