Merge remote-tracking branch 'aosp/master' into aosp
diff --git a/liblog/Blueprints b/liblog/Blueprints
new file mode 100644
index 0000000..e6cc57b
--- /dev/null
+++ b/liblog/Blueprints
@@ -0,0 +1,85 @@
+//
+// Copyright (C) 2008-2014 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.
+//
+
+// ANDROIDMK TRANSLATION ERROR: unsupported conditional
+// ifneq ($(TARGET_USES_LOGD),false)
+liblog_sources = ["logd_write.c"]
+// ANDROIDMK TRANSLATION ERROR: else from unsupported contitional
+// else
+//liblog_sources = ["logd_write_kern.c"]
+// ANDROIDMK TRANSLATION ERROR: endif from unsupported contitional
+// endif
+
+// some files must not be compiled when building against Mingw
+// they correspond to features not used by our host development tools
+// which are also hard or even impossible to port to native Win32
+liblog_non_windows_sources = [
+    "logprint.c",
+    "event_tag_map.c",
+]
+
+liblog_windows_sources = ["uio.c"]
+
+liblog_host_sources = ["fake_log_device.c"]
+liblog_target_sources = [
+    "log_time.cpp",
+    "log_is_loggable.c",
+]
+
+// ANDROIDMK TRANSLATION ERROR: unsupported conditional
+// ifneq ($(TARGET_USES_LOGD),false)
+liblog_target_sources += ["log_read.c"]
+// ANDROIDMK TRANSLATION ERROR: else from unsupported contitional
+// else
+//liblog_target_sources += ["log_read_kern.c"]
+// ANDROIDMK TRANSLATION ERROR: endif from unsupported contitional
+// endif
+
+// Shared and static library for host and device
+// ========================================================
+cc_library {
+    name: "liblog",
+    host_supported: true,
+
+    srcs: liblog_sources,
+
+    target: {
+        host: {
+            srcs: liblog_host_sources,
+            cflags: ["-DFAKE_LOG_DEVICE=1"],
+        },
+        android: {
+            srcs: liblog_target_sources + liblog_non_windows_sources,
+        },
+        windows: {
+            srcs: liblog_windows_sources,
+        },
+        not_windows: {
+            srcs: liblog_non_windows_sources,
+        },
+        linux: {
+            host_ldlibs: ["-lrt"],
+        },
+    },
+
+    cflags: [
+        "-Werror",
+        "-DLIBLOG_LOG_TAG=1005",
+    ],
+    compile_multilib: "both",
+}
+
+subdirs = ["tests"]
diff --git a/liblog/tests/Blueprints b/liblog/tests/Blueprints
new file mode 100644
index 0000000..bdc817e
--- /dev/null
+++ b/liblog/tests/Blueprints
@@ -0,0 +1,90 @@
+//
+// Copyright (C) 2013-2014 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.
+//
+
+// -----------------------------------------------------------------------------
+// Benchmarks.
+// -----------------------------------------------------------------------------
+
+test_module_prefix = "liblog-"
+test_tags = ["tests"]
+
+benchmark_c_flags = [
+    "-Ibionic/tests",
+    "-Wall",
+    "-Wextra",
+    "-Werror",
+    "-fno-builtin",
+    "-std=gnu++11",
+]
+
+benchmark_src_files = [
+    "benchmark_main.cpp",
+    "liblog_benchmark.cpp",
+]
+
+// Build benchmarks for the device. Run with:
+//   adb shell liblog-benchmarks
+cc_binary {
+    name: test_module_prefix + "benchmarks",
+    tags: test_tags,
+
+    cflags: benchmark_c_flags,
+    shared_libs: [
+        "liblog",
+    ],
+    srcs: benchmark_src_files,
+    // ANDROIDMK TRANSLATION ERROR: unsupported assignment to LOCAL_MODULE_PATH
+    // LOCAL_MODULE_PATH:=$(TARGET_OUT_DATA_NATIVE_TESTS)/$(LOCAL_MODULE)
+}
+
+// -----------------------------------------------------------------------------
+// Unit tests.
+// -----------------------------------------------------------------------------
+
+test_c_flags = [
+    "-fstack-protector-all",
+    "-g",
+    "-Wall",
+    "-Wextra",
+    "-Werror",
+    "-fno-builtin",
+    "-std=gnu++11",
+]
+
+test_src_files = ["liblog_test.cpp"]
+
+// to prevent breaking the build if bionic not relatively visible to us
+// ANDROIDMK TRANSLATION ERROR: unsupported conditional
+// ifneq ($(wildcard $(LOCAL_PATH)/../../../../bionic/libc/bionic/libc_logging.cpp),)
+test_src_files += ["libc_test.cpp"]
+
+// ANDROIDMK TRANSLATION ERROR: unsupported conditional
+// ifneq ($(TARGET_USES_LOGD),false)
+test_c_flags += ["-DTARGET_USES_LOGD"]
+// ANDROIDMK TRANSLATION ERROR: endif from unsupported contitional
+// endif
+// ANDROIDMK TRANSLATION ERROR: endif from unsupported contitional
+// endif
+// Build tests for the device (with .so). Run with:
+//   adb shell /data/nativetest/liblog-unit-tests/liblog-unit-tests
+cc_test {
+    name: test_module_prefix + "unit-tests",
+    tags: test_tags,
+
+    cflags: test_c_flags,
+    shared_libs: ["liblog"],
+    srcs: test_src_files,
+}