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