Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 603826f8 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Convert toolbox to Android.bp"

parents b91021a2 a852f95b
Loading
Loading
Loading
Loading
+71 −12
Original line number Diff line number Diff line
common_cflags = [
cc_defaults {
    name: "toolbox_defaults",

    cflags: [
        "-Werror",
        "-Wno-unused-parameter",
        "-Wno-unused-const-variable",
    "-include bsd-compatibility.h"
]
        "-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,

toolbox/Android.mk

deleted100644 → 0
+0 −78
Original line number Diff line number Diff line
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)