summaryrefslogtreecommitdiffstats
path: root/toolbox
diff options
context:
space:
mode:
authorDan Willemsen <dwillemsen@google.com>2018-01-08 13:50:55 -0800
committerDan Willemsen <dwillemsen@google.com>2018-01-08 15:03:21 -0800
commita852f95b534f7b8d0c4dfa79878b925c504e1493 (patch)
tree852f5f699c0c2a96b04a920dd25c5eb81b21603c /toolbox
parentacaeeeed7351cc1fe035c84bc96729bc0a02400d (diff)
downloadsystem_core-a852f95b534f7b8d0c4dfa79878b925c504e1493.tar.gz
system_core-a852f95b534f7b8d0c4dfa79878b925c504e1493.tar.bz2
system_core-a852f95b534f7b8d0c4dfa79878b925c504e1493.zip
Convert toolbox to Android.bp
This drops the *TOOLS automated logic, though since there are only three tools now, that seems less important. It would have been possible to implement that logic in a Go plugin, but that seems like a lot of overkill to fix a few duplicated entries. See build/soong/README.md for more information. Test: mmma system/core/toolbox Test: List of installed files is the same Test: input.h-labels.h and tools.h are the same Change-Id: I9753083c3f689e689e40001b998b39ad20509598
Diffstat (limited to 'toolbox')
-rw-r--r--toolbox/Android.bp83
-rw-r--r--toolbox/Android.mk78
2 files changed, 71 insertions, 90 deletions
diff --git a/toolbox/Android.bp b/toolbox/Android.bp
index 9c2cafac2..de8324af3 100644
--- a/toolbox/Android.bp
+++ b/toolbox/Android.bp
@@ -1,11 +1,18 @@
-common_cflags = [
- "-Werror",
- "-Wno-unused-parameter",
- "-Wno-unused-const-variable",
- "-include bsd-compatibility.h"
-]
+cc_defaults {
+ name: "toolbox_defaults",
+
+ cflags: [
+ "-Werror",
+ "-Wno-unused-parameter",
+ "-Wno-unused-const-variable",
+ "-include bsd-compatibility.h",
+ ],
+ local_include_dirs: ["upstream-netbsd/include/"],
+}
cc_library_static {
+ name: "libtoolbox_dd",
+ defaults: ["toolbox_defaults"],
srcs: [
"upstream-netbsd/bin/dd/args.c",
"upstream-netbsd/bin/dd/conv.c",
@@ -19,17 +26,68 @@ cc_library_static {
"upstream-netbsd/lib/libc/string/swab.c",
"upstream-netbsd/lib/libutil/raise_default_signal.c",
],
- cflags: common_cflags + [
+ cflags: [
"-Dmain=dd_main",
"-DNO_CONV",
],
- local_include_dirs: ["upstream-netbsd/include/"],
- name: "libtoolbox_dd",
+}
+
+genrule {
+ name: "toolbox_tools",
+ cmd: "echo '/* file generated automatically */' >$(out) && for t in toolbox dd getevent newfs_msdos getprop; do echo \"TOOL($$t)\" >>$(out); done",
+ out: ["tools.h"],
+}
+
+genrule {
+ name: "toolbox_input_labels",
+ tool_files: ["generate-input.h-labels.py"],
+ cmd: "$(location) $(in) >$(out)",
+ srcs: [":kernel_input_headers"],
+ out: ["input.h-labels.h"],
+}
+
+cc_binary {
+ name: "toolbox",
+ defaults: ["toolbox_defaults"],
+ srcs: [
+ "toolbox.c",
+ "getevent.c",
+ "getprop.cpp",
+ "newfs_msdos.c",
+ ],
+ generated_headers: [
+ "toolbox_tools",
+ "toolbox_input_labels",
+ ],
+ whole_static_libs: ["libtoolbox_dd"],
+ shared_libs: [
+ "libbase",
+ "libcutils",
+ ],
+ static_libs: [
+ "libpropertyinfoparser",
+ ],
+ cpp_std: "gnu++1z",
+
+ symlinks: [
+ "dd",
+ "getevent",
+ "getprop",
+ "newfs_msdos",
+ ],
+}
+
+// We only want 'r' on userdebug and eng builds.
+cc_binary {
+ name: "r",
+ defaults: ["toolbox_defaults"],
+ srcs: ["r.c"],
}
// We build BSD grep separately, so it can provide egrep and fgrep too.
cc_defaults {
name: "grep_common",
+ defaults: ["toolbox_defaults"],
srcs: [
"upstream-netbsd/usr.bin/grep/fastgrep.c",
"upstream-netbsd/usr.bin/grep/file.c",
@@ -37,9 +95,10 @@ cc_defaults {
"upstream-netbsd/usr.bin/grep/queue.c",
"upstream-netbsd/usr.bin/grep/util.c",
],
- cflags: common_cflags,
- local_include_dirs: ["upstream-netbsd/include/"],
- symlinks: ["egrep", "fgrep"],
+ symlinks: [
+ "egrep",
+ "fgrep",
+ ],
sanitize: {
integer_overflow: false,
diff --git a/toolbox/Android.mk b/toolbox/Android.mk
deleted file mode 100644
index d1b6114b0..000000000
--- a/toolbox/Android.mk
+++ /dev/null
@@ -1,78 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-common_cflags := \
- -Werror -Wno-unused-parameter -Wno-unused-const-variable \
- -include bsd-compatibility.h \
-
-include $(CLEAR_VARS)
-
-BSD_TOOLS := \
- dd \
-
-OUR_TOOLS := \
- getevent \
- newfs_msdos \
-
-OUR_CPP_TOOLS := \
- getprop \
-
-ALL_TOOLS = $(BSD_TOOLS) $(OUR_TOOLS) $(OUR_CPP_TOOLS)
-
-LOCAL_SRC_FILES := \
- toolbox.c \
- $(patsubst %,%.c,$(OUR_TOOLS)) \
- $(patsubst %,%.cpp,$(OUR_CPP_TOOLS)) \
-
-LOCAL_CFLAGS += $(common_cflags)
-LOCAL_CPPFLAGS += -std=gnu++1z
-LOCAL_C_INCLUDES += $(LOCAL_PATH)/upstream-netbsd/include/
-
-LOCAL_SHARED_LIBRARIES := \
- libbase \
- libcutils \
-
-LOCAL_STATIC_LIBRARIES := libpropertyinfoparser
-
-LOCAL_WHOLE_STATIC_LIBRARIES := $(patsubst %,libtoolbox_%,$(BSD_TOOLS))
-
-LOCAL_MODULE := toolbox
-
-# Install the symlinks.
-LOCAL_POST_INSTALL_CMD := $(hide) $(foreach t,$(ALL_TOOLS),ln -sf toolbox $(TARGET_OUT)/bin/$(t);)
-
-# Including this will define $(intermediates).
-#
-include $(BUILD_EXECUTABLE)
-
-$(LOCAL_PATH)/toolbox.c: $(intermediates)/tools.h
-
-TOOLS_H := $(intermediates)/tools.h
-$(TOOLS_H): PRIVATE_TOOLS := toolbox $(ALL_TOOLS)
-$(TOOLS_H): PRIVATE_CUSTOM_TOOL = echo "/* file generated automatically */" > $@ ; for t in $(PRIVATE_TOOLS) ; do echo "TOOL($$t)" >> $@ ; done
-$(TOOLS_H): $(LOCAL_PATH)/Android.mk
-$(TOOLS_H):
- $(transform-generated-source)
-
-$(LOCAL_PATH)/getevent.c: $(intermediates)/input.h-labels.h
-
-UAPI_INPUT_EVENT_CODES_H := bionic/libc/kernel/uapi/linux/input.h bionic/libc/kernel/uapi/linux/input-event-codes.h
-INPUT_H_LABELS_H := $(intermediates)/input.h-labels.h
-$(INPUT_H_LABELS_H): PRIVATE_LOCAL_PATH := $(LOCAL_PATH)
-# The PRIVATE_CUSTOM_TOOL line uses = to evaluate the output path late.
-# We copy the input path so it can't be accidentally modified later.
-$(INPUT_H_LABELS_H): PRIVATE_UAPI_INPUT_EVENT_CODES_H := $(UAPI_INPUT_EVENT_CODES_H)
-$(INPUT_H_LABELS_H): PRIVATE_CUSTOM_TOOL = $(PRIVATE_LOCAL_PATH)/generate-input.h-labels.py $(PRIVATE_UAPI_INPUT_EVENT_CODES_H) > $@
-# The dependency line though gets evaluated now, so the PRIVATE_ copy doesn't exist yet,
-# and the original can't yet have been modified, so this is both sufficient and necessary.
-$(INPUT_H_LABELS_H): $(LOCAL_PATH)/Android.mk $(LOCAL_PATH)/generate-input.h-labels.py $(UAPI_INPUT_EVENT_CODES_H)
-$(INPUT_H_LABELS_H):
- $(transform-generated-source)
-
-# We only want 'r' on userdebug and eng builds.
-include $(CLEAR_VARS)
-LOCAL_SRC_FILES := r.c
-LOCAL_CFLAGS += $(common_cflags)
-LOCAL_C_INCLUDES += $(LOCAL_PATH)/upstream-netbsd/include/
-LOCAL_MODULE := r
-LOCAL_MODULE_TAGS := debug
-include $(BUILD_EXECUTABLE)