Colin Cross | 22e7fb7 | 2014-01-22 19:46:14 -0800 | [diff] [blame] | 1 | include $(CLEAR_VARS) |
| 2 | |
| 3 | LOCAL_MODULE_TAGS:= |
| 4 | LOCAL_MODULE:=libext$(libext_suffix) |
| 5 | |
Colin Cross | 84d100d | 2014-01-27 16:30:26 -0800 | [diff] [blame] | 6 | # LOCAL_MODULE_CLASS must be defined before calling $(local-generated-sources-dir) |
Colin Cross | 22e7fb7 | 2014-01-22 19:46:14 -0800 | [diff] [blame] | 7 | # |
| 8 | LOCAL_MODULE_CLASS := STATIC_LIBRARIES |
Colin Cross | 84d100d | 2014-01-27 16:30:26 -0800 | [diff] [blame] | 9 | MY_gen := $(call local-generated-sources-dir) |
Colin Cross | 22e7fb7 | 2014-01-22 19:46:14 -0800 | [diff] [blame] | 10 | |
| 11 | # LOCAL_PATH needed because of dirty #include "blabla.c" |
| 12 | LOCAL_C_INCLUDES:= \ |
| 13 | $(LOCAL_PATH)/../include/ \ |
JP Abgrall | e3928b7 | 2014-04-02 14:47:39 -0700 | [diff] [blame] | 14 | $(LOCAL_PATH)/.. \ |
Colin Cross | 84d100d | 2014-01-27 16:30:26 -0800 | [diff] [blame] | 15 | $(MY_gen) \ |
Colin Cross | 22e7fb7 | 2014-01-22 19:46:14 -0800 | [diff] [blame] | 16 | $(LOCAL_PATH) |
| 17 | |
| 18 | LOCAL_CFLAGS:=-DNO_SHARED_LIBS=1 |
| 19 | # The $* does not work as expected. It ends up empty. Even with SECONDEXPANSION. |
| 20 | # LOCAL_CFLAGS+=-D_INIT=lib$*_init |
| 21 | LOCAL_CFLAGS+=-DXTABLES_INTERNAL |
JP Abgrall | e3928b7 | 2014-04-02 14:47:39 -0700 | [diff] [blame] | 22 | LOCAL_CFLAGS+=-D_LARGEFILE_SOURCE=1 -D_LARGE_FILES -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DENABLE_IPV4 -DENABLE_IPV6 |
Colin Cross | 22e7fb7 | 2014-01-22 19:46:14 -0800 | [diff] [blame] | 23 | # Accommodate arm-eabi-4.4.3 tools that don't set __ANDROID__ |
| 24 | LOCAL_CFLAGS+=-D__ANDROID__ |
| 25 | LOCAL_CFLAGS += $(MY_warnings) |
| 26 | |
Colin Cross | 84d100d | 2014-01-27 16:30:26 -0800 | [diff] [blame] | 27 | MY_GEN_INITEXT:= $(MY_gen)/initext.c |
Colin Cross | 22e7fb7 | 2014-01-22 19:46:14 -0800 | [diff] [blame] | 28 | $(MY_GEN_INITEXT): MY_initext_func := $(addprefix $(libext_prefix)_,$(libext_build_mod)) |
| 29 | $(MY_GEN_INITEXT): MY_suffix := $(libext_suffix) |
| 30 | $(MY_GEN_INITEXT): |
| 31 | @mkdir -p $(dir $@) |
| 32 | @( \ |
| 33 | echo "" >$@; \ |
| 34 | for i in $(MY_initext_func); do \ |
| 35 | echo "extern void lib$${i}_init(void);" >>$@; \ |
| 36 | done; \ |
| 37 | echo "void init_extensions$(MY_suffix)(void);" >>$@; \ |
| 38 | echo "void init_extensions$(MY_suffix)(void)" >>$@; \ |
| 39 | echo "{" >>$@; \ |
| 40 | for i in $(MY_initext_func); do \ |
| 41 | echo " ""lib$${i}_init();" >>$@; \ |
| 42 | done; \ |
| 43 | echo "}" >>$@; \ |
| 44 | ); |
| 45 | |
| 46 | MY_lib_sources:= \ |
| 47 | $(patsubst %,$(LOCAL_PATH)/lib$(libext_prefix)_%.c,$(libext_build_mod)) |
| 48 | |
Colin Cross | 84d100d | 2014-01-27 16:30:26 -0800 | [diff] [blame] | 49 | MY_gen_lib_sources:= $(patsubst $(LOCAL_PATH)/%,${MY_gen}/%,${MY_lib_sources}) |
Colin Cross | 22e7fb7 | 2014-01-22 19:46:14 -0800 | [diff] [blame] | 50 | |
| 51 | ${MY_gen_lib_sources}: PRIVATE_PATH := $(LOCAL_PATH) |
| 52 | ${MY_gen_lib_sources}: PRIVATE_CUSTOM_TOOL = $(PRIVATE_PATH)/filter_init $(PRIVATE_PATH)/$(notdir $@) > $@ |
| 53 | ${MY_gen_lib_sources}: PRIVATE_MODULE := $(LOCAL_MODULE) |
| 54 | ${MY_gen_lib_sources}: PRIVATE_C_INCLUDES := $(LOCAL_C_INCLUDES) |
Colin Cross | 84d100d | 2014-01-27 16:30:26 -0800 | [diff] [blame] | 55 | ${MY_gen_lib_sources}: ${MY_gen}/% : $(LOCAL_PATH)/% |
Colin Cross | 22e7fb7 | 2014-01-22 19:46:14 -0800 | [diff] [blame] | 56 | $(transform-generated-source) |
| 57 | |
Colin Cross | 84d100d | 2014-01-27 16:30:26 -0800 | [diff] [blame] | 58 | $(MY_GEN_INITEXT): $(MY_gen_lib_sources) |
Colin Cross | 22e7fb7 | 2014-01-22 19:46:14 -0800 | [diff] [blame] | 59 | |
| 60 | LOCAL_GENERATED_SOURCES:= $(MY_GEN_INITEXT) $(MY_gen_lib_sources) |
| 61 | |
| 62 | include $(BUILD_STATIC_LIBRARY) |