aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@google.com>2011-10-07 15:43:10 +0200
committerDavid 'Digit' Turner <digit@google.com>2011-10-07 17:31:21 +0200
commit3806a2d17c66c8bbba7649e71c8c7d97f9267e17 (patch)
tree600bf1557fbbcaf72f848a59e2b01e337db7716c
parent4d704b595dcc761aa92045093161044e1f078935 (diff)
downloadndk-3806a2d17c66c8bbba7649e71c8c7d97f9267e17.tar.gz
gen-platforms.sh: Auto-generate <android/api-level.h>
Auto-generate the <android/api-level.h> header which contains a single macro definition for the native API level that the code is built against. Previously, the corresponding files were stored under ../development/ndk and required manual updating, which is tedious and error-prone + remove obsolete dev-generate-api-levels.sh script Change-Id: Ibe482281dff7d86e0a46f6dd9d7096e3cc790e8e
-rwxr-xr-xbuild/tools/dev-generate-api-levels.sh86
-rwxr-xr-xbuild/tools/gen-platforms.sh48
2 files changed, 48 insertions, 86 deletions
diff --git a/build/tools/dev-generate-api-levels.sh b/build/tools/dev-generate-api-levels.sh
deleted file mode 100755
index 1b5c868ab..000000000
--- a/build/tools/dev-generate-api-levels.sh
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/sh
-#
-# Copyright (C) 2010 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# This script is used to automatically generate the <android/api-level.h>
-# header files under development/ndk
-
-. `dirname $0`/prebuilt-common.sh
-
-PLATFORMS_DIR=`cd $ANDROID_NDK_ROOT/../development/ndk/platforms && pwd`
-if [ ! -d "$PLATFORMS_DIR" ] ; then
- PLATFORMS_DIR=`cd $ANDROID_NDK_ROOT/platforms && pwd`
-fi
-register_var_option "--platform-dir=<path>" PLATFORMS_DIR "Specify target platforms directory."
-
-APIS="$API_LEVELS"
-register_var_option "--apis=<list>" APIS "Specify list of API levels."
-
-if [ -z "$PLATFORMS_DIR" ] ; then
- dump "ERROR: Please specify a platforms directory with --platform-dir=<path>"
- exit 1
-fi
-
-if [ ! -d "$PLATFORMS_DIR" ] ; then
- dump "ERROR: Your platforms directory does not exist: $PLATFORMS_DIR"
- exit 1
-fi
-
-dump "Target directory: $PLATFORMS_DIR"
-
-for API in $APIS; do
- if [ ! -d "$PLATFORMS_DIR/android-$API" ] ; then
- dump "ERROR: Missing platform directory: $PLATFORMS_DIR/android-$DIR"
- exit 1
- fi
- HEADER="android-$API/include/android/api-level.h"
- dump "Generating: $HEADER"
- cat > "$PLATFORMS_DIR/$HEADER" <<EOF
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef ANDROID_API_LEVEL_H
-#define ANDROID_API_LEVEL_H
-
-#define __ANDROID_API__ $API
-
-#endif /* ANDROID_API_LEVEL_H */
-EOF
-done
-
diff --git a/build/tools/gen-platforms.sh b/build/tools/gen-platforms.sh
index ed2c167e3..030c9ad41 100755
--- a/build/tools/gen-platforms.sh
+++ b/build/tools/gen-platforms.sh
@@ -367,6 +367,52 @@ gen_shell_libraries ()
done
}
+# $1: platform number
+# $2: architecture
+# $3: target NDK directory
+generate_api_level ()
+{
+ local API=$1
+ local ARCH=$2
+ local HEADER="platforms/android-$API/arch-$ARCH/usr/include/android/api-level.h"
+ log dump "Generating: $HEADER"
+ cat > "$3/$HEADER" <<EOF
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef ANDROID_API_LEVEL_H
+#define ANDROID_API_LEVEL_H
+
+#define __ANDROID_API__ $API
+
+#endif /* ANDROID_API_LEVEL_H */
+EOF
+}
+
# Copy platform sysroot and samples into your destination
#
@@ -409,6 +455,8 @@ for PLATFORM in $PLATFORMS; do
copy_src_directory $PLATFORM_SRC/arch-$ARCH/lib $PLATFORM_DST/$SYSROOT/lib "sysroot libs"
copy_src_directory $PLATFORM_SRC/$SYSROOT $PLATFORM_DST/$SYSROOT "sysroot"
+ generate_api_level "$PLATFORM" "$ARCH" "$DSTDIR"
+
if [ -z "$OPTION_MINIMAL" ]; then
# Generate shell libraries from symbol files
gen_shell_libraries $ARCH $PLATFORM_SRC/arch-$ARCH/symbols $PLATFORM_DST/$SYSROOT/lib