Merge "Convert toolbox to Android.bp"

am: 603826f857

Change-Id: I430509d1541fc3f6cd91f3200a8a26c6025bf1b8
This commit is contained in:
Dan Willemsen 2018-01-09 06:07:49 +00:00 committed by android-build-merger
commit 0b3e2d4499
2 changed files with 71 additions and 90 deletions

View file

@ -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,

View file

@ -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)