blob: 7aba36a8e24aaa2c1f051fa60e99e53db2ac09dd [file] [log] [blame]
Colin Cross22e7fb72014-01-22 19:46:14 -08001include $(CLEAR_VARS)
2
3LOCAL_MODULE_TAGS:=
4LOCAL_MODULE:=libext$(libext_suffix)
5
Colin Cross84d100d2014-01-27 16:30:26 -08006# LOCAL_MODULE_CLASS must be defined before calling $(local-generated-sources-dir)
Colin Cross22e7fb72014-01-22 19:46:14 -08007#
8LOCAL_MODULE_CLASS := STATIC_LIBRARIES
Colin Cross84d100d2014-01-27 16:30:26 -08009MY_gen := $(call local-generated-sources-dir)
Colin Cross22e7fb72014-01-22 19:46:14 -080010
11# LOCAL_PATH needed because of dirty #include "blabla.c"
12LOCAL_C_INCLUDES:= \
13 $(LOCAL_PATH)/../include/ \
JP Abgralle3928b72014-04-02 14:47:39 -070014 $(LOCAL_PATH)/.. \
Colin Cross84d100d2014-01-27 16:30:26 -080015 $(MY_gen) \
Colin Cross22e7fb72014-01-22 19:46:14 -080016 $(LOCAL_PATH)
17
18LOCAL_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
21LOCAL_CFLAGS+=-DXTABLES_INTERNAL
JP Abgralle3928b72014-04-02 14:47:39 -070022LOCAL_CFLAGS+=-D_LARGEFILE_SOURCE=1 -D_LARGE_FILES -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DENABLE_IPV4 -DENABLE_IPV6
Colin Cross22e7fb72014-01-22 19:46:14 -080023# Accommodate arm-eabi-4.4.3 tools that don't set __ANDROID__
24LOCAL_CFLAGS+=-D__ANDROID__
25LOCAL_CFLAGS += $(MY_warnings)
26
Colin Cross84d100d2014-01-27 16:30:26 -080027MY_GEN_INITEXT:= $(MY_gen)/initext.c
Colin Cross22e7fb72014-01-22 19:46:14 -080028$(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
46MY_lib_sources:= \
47 $(patsubst %,$(LOCAL_PATH)/lib$(libext_prefix)_%.c,$(libext_build_mod))
48
Colin Cross84d100d2014-01-27 16:30:26 -080049MY_gen_lib_sources:= $(patsubst $(LOCAL_PATH)/%,${MY_gen}/%,${MY_lib_sources})
Colin Cross22e7fb72014-01-22 19:46:14 -080050
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 Cross84d100d2014-01-27 16:30:26 -080055${MY_gen_lib_sources}: ${MY_gen}/% : $(LOCAL_PATH)/%
Colin Cross22e7fb72014-01-22 19:46:14 -080056 $(transform-generated-source)
57
Colin Cross84d100d2014-01-27 16:30:26 -080058$(MY_GEN_INITEXT): $(MY_gen_lib_sources)
Colin Cross22e7fb72014-01-22 19:46:14 -080059
60LOCAL_GENERATED_SOURCES:= $(MY_GEN_INITEXT) $(MY_gen_lib_sources)
61
62include $(BUILD_STATIC_LIBRARY)