| LOCAL_PATH := $(call my-dir) |
| |
| include $(CLEAR_VARS) |
| LOCAL_MODULE := checkpolicy |
| LOCAL_MODULE_TAGS := optional |
| LOCAL_CFLAGS := -Wall -Werror -Wshadow |
| LOCAL_C_INCLUDES := $(LOCAL_PATH) |
| LOCAL_SRC_FILES := \ |
| queue.c \ |
| module_compiler.c \ |
| parse_util.c \ |
| policy_define.c \ |
| checkpolicy.c |
| LOCAL_YACCFLAGS := -v |
| LOCAL_STATIC_LIBRARIES := libsepol |
| include $(BUILD_HOST_EXECUTABLE) |
| |
| # The default build system tries to create a C++ lexer, but it won't |
| # compile because the generated file uses reserved C++ keywords. |
| # The following rules manually generate a C file from the lexer. |
| checkpolicy_lex_output := $(addprefix $(intermediates)/,policy_scan.c) |
| checkpolicy_lex_objects := $(checkpolicy_lex_output:.c=.o) |
| |
| $(checkpolicy_lex_output): $(intermediates)/%.c: $(TOPDIR)$(LOCAL_PATH)/%.l |
| @mkdir -p $(dir $@) |
| @echo "Lex: $(PRIVATE_MODULE) <= $<" |
| $(hide) $(LEX) -o$@ $< |
| |
| $(checkpolicy_lex_objects): PRIVATE_ARM_MODE := $(normal_objects_mode) |
| $(checkpolicy_lex_objects): PRIVATE_CONLYFLAGS := -Wno-sign-compare |
| $(checkpolicy_lex_objects): $(intermediates)/import_includes |
| $(checkpolicy_lex_objects): $(checkpolicy_lex_output) |
| $(transform-$(PRIVATE_HOST)c-to-o) |
| |
| checkpolicy_yacc_output := $(addprefix $(intermediates)/,policy_parse.c) |
| checkpolicy_yacc_objects := $(checkpolicy_yacc_output:.c=.o) |
| |
| $(checkpolicy_yacc_output): $(intermediates)/%.c: $(TOPDIR)$(LOCAL_PATH)/%.y |
| @mkdir -p $(dir $@) |
| @echo "Yacc: $(PRIVATE_MODULE) <= $<" |
| $(YACC) $(PRIVATE_YACCFLAGS) -o $@ $< |
| |
| $(checkpolicy_yacc_objects): PRIVATE_ARM_MODE := $(normal_objects_mode) |
| $(checkpolicy_yacc_objects): PRIVATE_CONLYFLAGS := -Wno-sign-compare |
| $(checkpolicy_yacc_objects): $(intermediates)/import_includes |
| $(checkpolicy_yacc_objects): $(checkpolicy_yacc_output) |
| $(transform-$(PRIVATE_HOST)c-to-o) |
| |
| # header file generated in yacc is required by lex |
| $(checkpolicy_lex_objects): $(checkpolicy_yacc_output) |
| |
| $(LOCAL_BUILT_MODULE): PRIVATE_ALL_OBJECTS += $(checkpolicy_lex_objects) $(checkpolicy_yacc_objects) |
| $(LOCAL_BUILT_MODULE): $(checkpolicy_lex_objects) $(checkpolicy_yacc_objects) |