diff options
author | Colin Cross <ccross@android.com> | 2014-01-22 19:46:14 -0800 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2014-01-24 21:54:36 -0800 |
commit | 22e7fb7a9e435e8a736ae2c596b57db904a9a1b2 (patch) | |
tree | 5ff5bed0f71bbacbe7a7a630ddedd127046595d9 | |
parent | 3eb211a1f4abee87ce09e0bf571357d0c93e4a55 (diff) | |
download | iptables-22e7fb7a9e435e8a736ae2c596b57db904a9a1b2.tar.gz |
iptables: rewrite extensions makefile to avoid duplication
Move the duplicated parts of the extensions makefile into a
separate libext.mk, and include it 3 times from the main makefile.
Change-Id: Idcbe1da8e024af895da33e396595e616f52e25ad
-rw-r--r-- | extensions/Android.mk | 198 | ||||
-rw-r--r-- | extensions/libext.mk | 60 |
2 files changed, 72 insertions, 186 deletions
diff --git a/extensions/Android.mk b/extensions/Android.mk index e5a49212..3db8008b 100644 --- a/extensions/Android.mk +++ b/extensions/Android.mk @@ -17,194 +17,20 @@ MY_pf4_objs := $(patsubst %,libipt_%.o,${MY_pf4_build_mod}) MY_pf6_objs := $(patsubst %,libip6t_%.o,${MY_pf6_build_mod}) MY_warnings := -Wno-unused-parameter -Wno-missing-field-initializers -Wno-sign-compare -Wno-pointer-arith -#---------------------------------------------------------------- -# libext -# TODO(jpa): Trun this into a function/macro as libext{,4,6} are all the same. - -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS:= -LOCAL_MODULE:=libext - -# LOCAL_MODULE_CLASS must be defined before calling $(local-intermediates-dir) -# -LOCAL_MODULE_CLASS := STATIC_LIBRARIES -MY_intermediates := $(call local-intermediates-dir) - -# LOCAL_PATH needed because of dirty #include "blabla.c" -LOCAL_C_INCLUDES:= \ - $(LOCAL_PATH)/../include/ \ - $(MY_intermediates) \ - $(LOCAL_PATH) - -LOCAL_CFLAGS:=-DNO_SHARED_LIBS=1 -# The $* does not work as expected. It ends up empty. Even with SECONDEXPANSION. -# LOCAL_CFLAGS+=-D_INIT=lib$*_init -LOCAL_CFLAGS+=-DXTABLES_INTERNAL -# Accommodate arm-eabi-4.4.3 tools that don't set __ANDROID__ -LOCAL_CFLAGS+=-D__ANDROID__ -LOCAL_CFLAGS += $(MY_warnings) - -MY_initext_func := $(addprefix xt_,${MY_pfx_build_mod}) -MY_GEN_INITEXT:= $(MY_intermediates)/initext.c -$(MY_GEN_INITEXT): - @mkdir -p $(dir $@) - @( \ - echo "" >$@; \ - for i in ${MY_initext_func}; do \ - echo "extern void lib$${i}_init(void);" >>$@; \ - done; \ - echo "void init_extensions(void);" >>$@; \ - echo "void init_extensions(void)" >>$@; \ - echo "{" >>$@; \ - for i in ${MY_initext_func}; do \ - echo " ""lib$${i}_init();" >>$@; \ - done; \ - echo "}" >>$@; \ - ); - -MY_lib_sources:= \ - $(patsubst %,$(LOCAL_PATH)/libxt_%.c,${MY_pfx_build_mod}) - -MY_gen_lib_sources:= $(patsubst $(LOCAL_PATH)/%,${MY_intermediates}/%,${MY_lib_sources}) - -${MY_gen_lib_sources}: PRIVATE_PATH := $(LOCAL_PATH) -${MY_gen_lib_sources}: PRIVATE_CUSTOM_TOOL = $(PRIVATE_PATH)/filter_init $(PRIVATE_PATH)/$(notdir $@) > $@ -${MY_gen_lib_sources}: PRIVATE_MODULE := $(LOCAL_MODULE) -${MY_gen_lib_sources}: PRIVATE_C_INCLUDES := $(LOCAL_C_INCLUDES) -${MY_gen_lib_sources}: $(MY_lib_sources) - $(transform-generated-source) - -$(MY_intermediates)/initext.o : $(MY_GEN_INITEXT) $(MY_gen_lib_sources) - -LOCAL_GENERATED_SOURCES:= $(MY_GEN_INITEXT) $(MY_gen_lib_sources) - -include $(BUILD_STATIC_LIBRARY) - -#---------------------------------------------------------------- -# libext4 - -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS:= -LOCAL_MODULE:=libext4 - -# LOCAL_MODULE_CLASS must be defined before calling $(local-intermediates-dir) -# -LOCAL_MODULE_CLASS := STATIC_LIBRARIES -MY_intermediates := $(call local-intermediates-dir) - -# LOCAL_PATH needed because of dirty #include "blabla.c" -LOCAL_C_INCLUDES:= \ - $(LOCAL_PATH)/../include/ \ - $(MY_intermediates)/ \ - $(LOCAL_PATH)/ - -LOCAL_CFLAGS:=-DNO_SHARED_LIBS=1 -# The $* does not work as expected. It ends up empty. Even with SECONDEXPANSION. -# LOCAL_CFLAGS+=-D_INIT=lib$*_init -LOCAL_CFLAGS+=-DXTABLES_INTERNAL -# Accommodate arm-eabi-4.4.3 tools that don't set __ANDROID__ -LOCAL_CFLAGS+=-D__ANDROID__ -LOCAL_CFLAGS += $(MY_warnings) - -MY_initext4_func := $(addprefix ipt_,${MY_pf4_build_mod}) -MY_GEN_INITEXT4:= $(MY_intermediates)/initext4.c -$(MY_GEN_INITEXT4): - @mkdir -p $(dir $@) - @( \ - echo "" >$@; \ - for i in ${MY_initext4_func}; do \ - echo "extern void lib$${i}_init(void);" >>$@; \ - done; \ - echo "void init_extensions4(void);" >>$@; \ - echo "void init_extensions4(void)" >>$@; \ - echo "{" >>$@; \ - for i in ${MY_initext4_func}; do \ - echo " ""lib$${i}_init();" >>$@; \ - done; \ - echo "}" >>$@; \ - ); - -MY_lib_sources:= \ - $(patsubst %,$(LOCAL_PATH)/libipt_%.c,${MY_pf4_build_mod}) - -MY_gen_lib_sources:= $(patsubst $(LOCAL_PATH)/%,${MY_intermediates}/%,${MY_lib_sources}) - -${MY_gen_lib_sources}: PRIVATE_PATH := $(LOCAL_PATH) -${MY_gen_lib_sources}: PRIVATE_CUSTOM_TOOL = $(PRIVATE_PATH)/filter_init $(PRIVATE_PATH)/$(notdir $@) > $@ -${MY_gen_lib_sources}: PRIVATE_MODULE := $(LOCAL_MODULE) -${MY_gen_lib_sources}: PRIVATE_C_INCLUDES := $(LOCAL_C_INCLUDES) -${MY_gen_lib_sources}: $(MY_lib_sources) - $(transform-generated-source) - -$(MY_intermediates)/initext4.o : $(MY_GEN_INITEXT4) $(MY_gen_lib_sources) - -LOCAL_GENERATED_SOURCES:= $(MY_GEN_INITEXT4) ${MY_gen_lib_sources} - -include $(BUILD_STATIC_LIBRARY) - -#---------------------------------------------------------------- -# libext6 - -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS:= -LOCAL_MODULE:=libext6 - -# LOCAL_MODULE_CLASS must be defined before calling $(local-intermediates-dir) -# -LOCAL_MODULE_CLASS := STATIC_LIBRARIES -MY_intermediates := $(call local-intermediates-dir) - -# LOCAL_PATH needed because of dirty #include "blabla.c" -LOCAL_C_INCLUDES:= \ - $(LOCAL_PATH)/../include/ \ - $(MY_intermediates) \ - $(LOCAL_PATH) - -LOCAL_CFLAGS:=-DNO_SHARED_LIBS=1 -# The $* does not work as expected. It ends up empty. Even with SECONDEXPANSION. -# LOCAL_CFLAGS+=-D_INIT=lib$*_init -LOCAL_CFLAGS+=-DXTABLES_INTERNAL -# Accommodate arm-eabi-4.4.3 tools that don't set __ANDROID__ -LOCAL_CFLAGS+=-D__ANDROID__ -LOCAL_CFLAGS += $(MY_warnings) - -MY_initext6_func := $(addprefix ip6t_,${MY_pf6_build_mod}) -MY_GEN_INITEXT6:= $(MY_intermediates)/initext6.c -$(MY_GEN_INITEXT6): - @mkdir -p $(dir $@) - @( \ - echo "" >$@; \ - for i in ${MY_initext6_func}; do \ - echo "extern void lib$${i}_init(void);" >>$@; \ - done; \ - echo "void init_extensions6(void);" >>$@; \ - echo "void init_extensions6(void)" >>$@; \ - echo "{" >>$@; \ - for i in ${MY_initext6_func}; do \ - echo " ""lib$${i}_init();" >>$@; \ - done; \ - echo "}" >>$@; \ - ); - -MY_lib_sources:= \ - $(patsubst %,$(LOCAL_PATH)/libip6t_%.c,${MY_pf6_build_mod}) - -MY_gen_lib_sources:= $(patsubst $(LOCAL_PATH)/%,${MY_intermediates}/%,${MY_lib_sources}) - -${MY_gen_lib_sources}: PRIVATE_PATH := $(LOCAL_PATH) -${MY_gen_lib_sources}: PRIVATE_CUSTOM_TOOL = $(PRIVATE_PATH)/filter_init $(PRIVATE_PATH)/$(notdir $@) > $@ -${MY_gen_lib_sources}: PRIVATE_MODULE := $(LOCAL_MODULE) -${MY_gen_lib_sources}: PRIVATE_C_INCLUDES := $(LOCAL_C_INCLUDES) -${MY_gen_lib_sources}: $(MY_lib_sources) - $(transform-generated-source) +libext_suffix := +libext_prefix := xt +libext_build_mod := $(MY_pfx_build_mod) +include $(LOCAL_PATH)/libext.mk -$(MY_intermediates)/initext6.o : $(MY_GEN_INITEXT6) $(MY_gen_lib_sources) +libext_suffix := 4 +libext_prefix := ipt +libext_build_mod := $(MY_pf4_build_mod) +include $(LOCAL_PATH)/libext.mk -LOCAL_GENERATED_SOURCES:= $(MY_GEN_INITEXT6) $(MY_gen_lib_sources) +libext_suffix := 6 +libext_prefix := ip6t +libext_build_mod := $(MY_pf6_build_mod) +include $(LOCAL_PATH)/libext.mk -include $(BUILD_STATIC_LIBRARY) #---------------------------------------------------------------- diff --git a/extensions/libext.mk b/extensions/libext.mk new file mode 100644 index 00000000..51efd472 --- /dev/null +++ b/extensions/libext.mk @@ -0,0 +1,60 @@ +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS:= +LOCAL_MODULE:=libext$(libext_suffix) + +# LOCAL_MODULE_CLASS must be defined before calling $(local-intermediates-dir) +# +LOCAL_MODULE_CLASS := STATIC_LIBRARIES +MY_intermediates := $(call local-intermediates-dir) + +# LOCAL_PATH needed because of dirty #include "blabla.c" +LOCAL_C_INCLUDES:= \ + $(LOCAL_PATH)/../include/ \ + $(MY_intermediates) \ + $(LOCAL_PATH) + +LOCAL_CFLAGS:=-DNO_SHARED_LIBS=1 +# The $* does not work as expected. It ends up empty. Even with SECONDEXPANSION. +# LOCAL_CFLAGS+=-D_INIT=lib$*_init +LOCAL_CFLAGS+=-DXTABLES_INTERNAL +# Accommodate arm-eabi-4.4.3 tools that don't set __ANDROID__ +LOCAL_CFLAGS+=-D__ANDROID__ +LOCAL_CFLAGS += $(MY_warnings) + +MY_GEN_INITEXT:= $(MY_intermediates)/initext.c +$(MY_GEN_INITEXT): MY_initext_func := $(addprefix $(libext_prefix)_,$(libext_build_mod)) +$(MY_GEN_INITEXT): MY_suffix := $(libext_suffix) +$(MY_GEN_INITEXT): + @mkdir -p $(dir $@) + @( \ + echo "" >$@; \ + for i in $(MY_initext_func); do \ + echo "extern void lib$${i}_init(void);" >>$@; \ + done; \ + echo "void init_extensions$(MY_suffix)(void);" >>$@; \ + echo "void init_extensions$(MY_suffix)(void)" >>$@; \ + echo "{" >>$@; \ + for i in $(MY_initext_func); do \ + echo " ""lib$${i}_init();" >>$@; \ + done; \ + echo "}" >>$@; \ + ); + +MY_lib_sources:= \ + $(patsubst %,$(LOCAL_PATH)/lib$(libext_prefix)_%.c,$(libext_build_mod)) + +MY_gen_lib_sources:= $(patsubst $(LOCAL_PATH)/%,${MY_intermediates}/%,${MY_lib_sources}) + +${MY_gen_lib_sources}: PRIVATE_PATH := $(LOCAL_PATH) +${MY_gen_lib_sources}: PRIVATE_CUSTOM_TOOL = $(PRIVATE_PATH)/filter_init $(PRIVATE_PATH)/$(notdir $@) > $@ +${MY_gen_lib_sources}: PRIVATE_MODULE := $(LOCAL_MODULE) +${MY_gen_lib_sources}: PRIVATE_C_INCLUDES := $(LOCAL_C_INCLUDES) +${MY_gen_lib_sources}: $(MY_lib_sources) + $(transform-generated-source) + +$(MY_intermediates)/initext$(libext_suffix).o : $(MY_GEN_INITEXT) $(MY_gen_lib_sources) + +LOCAL_GENERATED_SOURCES:= $(MY_GEN_INITEXT) $(MY_gen_lib_sources) + +include $(BUILD_STATIC_LIBRARY) |