Skip to content

Commit c8c5866

Browse files
committed
Makefile fixes for systems with $CXX other than g++.
- Makefile: Use $(CXX) for compiling C++ files, don't override the environment's value of $CXX - build_detect_platform: use $CXX instead of g++. Based on bug report from Theo Schlossnagle: http://code.google.com/p/leveldb/issues/detail?id=46 (Sync with uptream at 25807040.)
1 parent 42fb47f commit c8c5866

File tree

2 files changed

+32
-27
lines changed

2 files changed

+32
-27
lines changed

Makefile

+25-24
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
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-
CC = g++
5+
CXX ?= g++
6+
CC ?= gcc
67

78
#-----------------------------------------------
89
# Uncomment exactly one of the lines labelled (A), (B), and (C) below
@@ -120,68 +121,68 @@ $(LIBRARY): $(LIBOBJECTS)
120121
$(AR) -rs $@ $(LIBOBJECTS)
121122

122123
db_bench: db/db_bench.o $(LIBOBJECTS) $(TESTUTIL)
123-
$(CC) $(LDFLAGS) db/db_bench.o $(LIBOBJECTS) $(TESTUTIL) -o $@
124+
$(CXX) $(LDFLAGS) db/db_bench.o $(LIBOBJECTS) $(TESTUTIL) -o $@
124125

125126
db_bench_sqlite3: doc/bench/db_bench_sqlite3.o $(LIBOBJECTS) $(TESTUTIL)
126-
$(CC) $(LDFLAGS) -lsqlite3 doc/bench/db_bench_sqlite3.o $(LIBOBJECTS) $(TESTUTIL) -o $@
127+
$(CXX) $(LDFLAGS) -lsqlite3 doc/bench/db_bench_sqlite3.o $(LIBOBJECTS) $(TESTUTIL) -o $@
127128

128129
db_bench_tree_db: doc/bench/db_bench_tree_db.o $(LIBOBJECTS) $(TESTUTIL)
129-
$(CC) $(LDFLAGS) -lkyotocabinet doc/bench/db_bench_tree_db.o $(LIBOBJECTS) $(TESTUTIL) -o $@
130+
$(CXX) $(LDFLAGS) -lkyotocabinet doc/bench/db_bench_tree_db.o $(LIBOBJECTS) $(TESTUTIL) -o $@
130131

131132
arena_test: util/arena_test.o $(LIBOBJECTS) $(TESTHARNESS)
132-
$(CC) $(LDFLAGS) util/arena_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
133+
$(CXX) $(LDFLAGS) util/arena_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
133134

134135
c_test: db/c_test.o $(LIBOBJECTS) $(TESTHARNESS)
135-
$(CC) $(LDFLAGS) db/c_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
136+
$(CXX) $(LDFLAGS) db/c_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
136137

137138
cache_test: util/cache_test.o $(LIBOBJECTS) $(TESTHARNESS)
138-
$(CC) $(LDFLAGS) util/cache_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
139+
$(CXX) $(LDFLAGS) util/cache_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
139140

140141
coding_test: util/coding_test.o $(LIBOBJECTS) $(TESTHARNESS)
141-
$(CC) $(LDFLAGS) util/coding_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
142+
$(CXX) $(LDFLAGS) util/coding_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
142143

143144
corruption_test: db/corruption_test.o $(LIBOBJECTS) $(TESTHARNESS)
144-
$(CC) $(LDFLAGS) db/corruption_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
145+
$(CXX) $(LDFLAGS) db/corruption_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
145146

146147
crc32c_test: util/crc32c_test.o $(LIBOBJECTS) $(TESTHARNESS)
147-
$(CC) $(LDFLAGS) util/crc32c_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
148+
$(CXX) $(LDFLAGS) util/crc32c_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
148149

149150
db_test: db/db_test.o $(LIBOBJECTS) $(TESTHARNESS)
150-
$(CC) $(LDFLAGS) db/db_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
151+
$(CXX) $(LDFLAGS) db/db_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
151152

152153
dbformat_test: db/dbformat_test.o $(LIBOBJECTS) $(TESTHARNESS)
153-
$(CC) $(LDFLAGS) db/dbformat_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
154+
$(CXX) $(LDFLAGS) db/dbformat_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
154155

155156
env_test: util/env_test.o $(LIBOBJECTS) $(TESTHARNESS)
156-
$(CC) $(LDFLAGS) util/env_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
157+
$(CXX) $(LDFLAGS) util/env_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
157158

158159
filename_test: db/filename_test.o $(LIBOBJECTS) $(TESTHARNESS)
159-
$(CC) $(LDFLAGS) db/filename_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
160+
$(CXX) $(LDFLAGS) db/filename_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
160161

161162
log_test: db/log_test.o $(LIBOBJECTS) $(TESTHARNESS)
162-
$(CC) $(LDFLAGS) db/log_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
163+
$(CXX) $(LDFLAGS) db/log_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
163164

164165
table_test: table/table_test.o $(LIBOBJECTS) $(TESTHARNESS)
165-
$(CC) $(LDFLAGS) table/table_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
166+
$(CXX) $(LDFLAGS) table/table_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
166167

167168
skiplist_test: db/skiplist_test.o $(LIBOBJECTS) $(TESTHARNESS)
168-
$(CC) $(LDFLAGS) db/skiplist_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
169+
$(CXX) $(LDFLAGS) db/skiplist_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
169170

170171
version_edit_test: db/version_edit_test.o $(LIBOBJECTS) $(TESTHARNESS)
171-
$(CC) $(LDFLAGS) db/version_edit_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
172+
$(CXX) $(LDFLAGS) db/version_edit_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
172173

173174
version_set_test: db/version_set_test.o $(LIBOBJECTS) $(TESTHARNESS)
174-
$(CC) $(LDFLAGS) db/version_set_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
175+
$(CXX) $(LDFLAGS) db/version_set_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
175176

176177
write_batch_test: db/write_batch_test.o $(LIBOBJECTS) $(TESTHARNESS)
177-
$(CC) $(LDFLAGS) db/write_batch_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
178+
$(CXX) $(LDFLAGS) db/write_batch_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
178179

179180
$(MEMENVLIBRARY) : helpers/memenv/memenv.o
180181
rm -f $@
181182
$(AR) -rs $@ helpers/memenv/memenv.o
182183

183184
memenv_test : helpers/memenv/memenv_test.o $(MEMENVLIBRARY) $(LIBRARY) $(TESTHARNESS)
184-
$(CC) $(LDFLAGS) helpers/memenv/memenv_test.o $(MEMENVLIBRARY) $(LIBRARY) $(TESTHARNESS) -o $@
185+
$(CXX) $(LDFLAGS) helpers/memenv/memenv_test.o $(MEMENVLIBRARY) $(LIBRARY) $(TESTHARNESS) -o $@
185186

186187
ifeq ($(PLATFORM), IOS)
187188
# For iOS, create universal object files to be used on both the simulator and
@@ -192,9 +193,9 @@ IOSVERSION=$(shell defaults read /Developer/Platforms/iPhoneOS.platform/version
192193

193194
.cc.o:
194195
mkdir -p ios-x86/$(dir $@)
195-
$(SIMULATORROOT)/usr/bin/$(CC) $(CFLAGS) -isysroot $(SIMULATORROOT)/SDKs/iPhoneSimulator$(IOSVERSION).sdk -arch i686 $< -o ios-x86/$@
196+
$(SIMULATORROOT)/usr/bin/$(CXX) $(CFLAGS) -isysroot $(SIMULATORROOT)/SDKs/iPhoneSimulator$(IOSVERSION).sdk -arch i686 $< -o ios-x86/$@
196197
mkdir -p ios-arm/$(dir $@)
197-
$(DEVICEROOT)/usr/bin/$(CC) $(CFLAGS) -isysroot $(DEVICEROOT)/SDKs/iPhoneOS$(IOSVERSION).sdk -arch armv6 -arch armv7 $< -o ios-arm/$@
198+
$(DEVICEROOT)/usr/bin/$(CXX) $(CFLAGS) -isysroot $(DEVICEROOT)/SDKs/iPhoneOS$(IOSVERSION).sdk -arch armv6 -arch armv7 $< -o ios-arm/$@
198199
lipo ios-x86/$@ ios-arm/$@ -create -output $@
199200

200201
.c.o:
@@ -206,7 +207,7 @@ IOSVERSION=$(shell defaults read /Developer/Platforms/iPhoneOS.platform/version
206207

207208
else
208209
.cc.o:
209-
$(CC) $(CFLAGS) $< -o $@
210+
$(CXX) $(CFLAGS) $< -o $@
210211

211212
.c.o:
212213
$(CC) $(CFLAGS) $< -o $@

build_detect_platform

+7-3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
# Delete existing build_config.mk
1414
rm -f build_config.mk
1515

16+
if test -z "$CXX"; then
17+
CXX=g++
18+
fi
19+
1620
# Detect OS
1721
case `uname -s` in
1822
Darwin)
@@ -48,8 +52,8 @@ PORT_CFLAGS="-fno-builtin-memcmp"
4852
# Detect C++0x -- this determines whether we'll use port_noatomic.h
4953
# or port_posix.h by:
5054
# 1. Rrying to compile with -std=c++0x and including <cstdatomic>.
51-
# 2. If g++ returns error code, we know to use port_posix.h
52-
g++ $CFLAGS -std=c++0x -x c++ - -o /dev/null 2>/dev/null <<EOF
55+
# 2. If $CXX returns error code, we know to use port_posix.h
56+
$CXX $CFLAGS -std=c++0x -x c++ - -o /dev/null 2>/dev/null <<EOF
5357
#include <cstdatomic>
5458
int main() {}
5559
EOF
@@ -61,7 +65,7 @@ fi
6165

6266
# Test whether Snappy library is installed
6367
# http://code.google.com/p/snappy/
64-
g++ $CFLAGS -x c++ - -o /dev/null 2>/dev/null <<EOF
68+
$CXX $CFLAGS -x c++ - -o /dev/null 2>/dev/null <<EOF
6569
#include <snappy.h>
6670
int main() {}
6771
EOF

0 commit comments

Comments
 (0)