44# argument, which in turn gets read while processing Makefile.
55#
66# The output will set the following variables:
7+ # CC C Compiler path
8+ # CXX C++ Compiler path
79# PLATFORM_LDFLAGS Linker flags
810# PLATFORM_SHARED_EXT Extension for shared libraries
911# PLATFORM_SHARED_LDFLAGS Flags for building shared library
1012# PLATFORM_SHARED_CFLAGS Flags for compiling objects for shared library
1113# PLATFORM_CCFLAGS C compiler flags
1214# PLATFORM_CXXFLAGS C++ compiler flags. Will contain:
13- # -DLEVELDB_PLATFORM_POSIX if cstdatomic is present
14- # -DLEVELDB_PLATFORM_NOATOMIC if it is not
15+ # PLATFORM_SHARED_VERSIONED Set to 'true' if platform supports versioned
16+ # shared libraries, empty otherwise.
17+ #
18+ # The PLATFORM_CCFLAGS and PLATFORM_CXXFLAGS might include the following:
19+ #
20+ # -DLEVELDB_CSTDATOMIC_PRESENT if <cstdatomic> is present
21+ # -DLEVELDB_PLATFORM_POSIX for Posix-based platforms
22+ # -DSNAPPY if the Snappy library is present
23+ #
1524
1625OUTPUT=$1
1726if test -z " $OUTPUT " ; then
18- echo " usage: $0 <output-filename>"
27+ echo " usage: $0 <output-filename>" >&2
1928 exit 1
2029fi
2130
2231# Delete existing output, if it exists
2332rm -f $OUTPUT
2433touch $OUTPUT
2534
35+ if test -z " $CC " ; then
36+ CC=cc
37+ fi
38+
2639if test -z " $CXX " ; then
2740 CXX=g++
2841fi
@@ -33,12 +46,14 @@ if test -z "$TARGET_OS"; then
3346fi
3447
3548COMMON_FLAGS=
49+ CROSS_COMPILE=
3650PLATFORM_CCFLAGS=
3751PLATFORM_CXXFLAGS=
3852PLATFORM_LDFLAGS=
3953PLATFORM_SHARED_EXT=" so"
4054PLATFORM_SHARED_LDFLAGS=" -shared -Wl,-soname -Wl,"
4155PLATFORM_SHARED_CFLAGS=" -fPIC"
56+ PLATFORM_SHARED_VERSIONED=true
4257
4358# On GCC, we pick libc's memcmp over GCC's memcmp via -fno-builtin-memcmp
4459case " $TARGET_OS " in
@@ -87,13 +102,14 @@ case "$TARGET_OS" in
87102 PORT_FILE=port/port_posix.cc
88103 ;;
89104 OS_ANDROID_CROSSCOMPILE)
90- PLATFORM=" $TARGET_OS "
91- COMMON_FLAGS=" "
92- PLATFORM_LDFLAGS=" "
93- PORT_FILE=port/port_android.cc
105+ PLATFORM=OS_ANDROID
106+ COMMON_FLAGS=" -fno-builtin-memcmp -D_REENTRANT -DOS_ANDROID -DLEVELDB_PLATFORM_POSIX"
107+ PLATFORM_LDFLAGS=" " # All pthread features are in the Android C library
108+ PORT_FILE=port/port_posix.cc
109+ CROSS_COMPILE=true
94110 ;;
95111 * )
96- echo " Unknown platform!"
112+ echo " Unknown platform!" >&2
97113 exit 1
98114esac
99115
@@ -113,7 +129,7 @@ set +f # re-enable globbing
113129echo " SOURCES=$PORTABLE_FILES $PORT_FILE " >> $OUTPUT
114130echo " MEMENV_SOURCES=helpers/memenv/memenv.cc" >> $OUTPUT
115131
116- if [ " $PLATFORM " = " OS_ANDROID_CROSSCOMPILE " ]; then
132+ if [ " $CROSS_COMPILE " = " true " ]; then
117133 # Cross-compiling; do not try any compilation tests.
118134 true
119135else
152168PLATFORM_CCFLAGS=" $PLATFORM_CCFLAGS $COMMON_FLAGS "
153169PLATFORM_CXXFLAGS=" $PLATFORM_CXXFLAGS $COMMON_FLAGS "
154170
171+ echo " CC=$CC " >> $OUTPUT
172+ echo " CXX=$CXX " >> $OUTPUT
155173echo " PLATFORM=$PLATFORM " >> $OUTPUT
156174echo " PLATFORM_LDFLAGS=$PLATFORM_LDFLAGS " >> $OUTPUT
157175echo " PLATFORM_CCFLAGS=$PLATFORM_CCFLAGS " >> $OUTPUT
158176echo " PLATFORM_CXXFLAGS=$PLATFORM_CXXFLAGS " >> $OUTPUT
159177echo " PLATFORM_SHARED_CFLAGS=$PLATFORM_SHARED_CFLAGS " >> $OUTPUT
160178echo " PLATFORM_SHARED_EXT=$PLATFORM_SHARED_EXT " >> $OUTPUT
161179echo " PLATFORM_SHARED_LDFLAGS=$PLATFORM_SHARED_LDFLAGS " >> $OUTPUT
180+ echo " PLATFORM_SHARED_VERSIONED=$PLATFORM_SHARED_VERSIONED " >> $OUTPUT
0 commit comments