Android.mk revision 7ba421f1d968e5aa819bc5b49bd40cd127daa5fa
1ifneq ($(TARGET_SIMULATOR),true) 2 BUILD_IPTABLES_V14 := 1 3endif 4 5ifeq ($(BUILD_IPTABLES_V14),1) 6 7LOCAL_PATH:= $(call my-dir) 8 9# 10# Build libraries 11# 12 13#---------------------------------------------------------------- 14# libip4tc 15 16include $(CLEAR_VARS) 17 18LOCAL_C_INCLUDES:= \ 19 $(KERNEL_HEADERS) \ 20 $(LOCAL_PATH)/include/ 21 22# Accommodate arm-eabi-4.4.3 tools that don't set __ANDROID__ 23LOCAL_CFLAGS:=-D__ANDROID__ 24 25LOCAL_SRC_FILES:= \ 26 libiptc/libip4tc.c \ 27 28 29LOCAL_MODULE_TAGS:= 30LOCAL_MODULE:=libip4tc 31 32include $(BUILD_STATIC_LIBRARY) 33 34 35#---------------------------------------------------------------- 36# libip6tc 37 38include $(CLEAR_VARS) 39 40LOCAL_C_INCLUDES:= \ 41 $(KERNEL_HEADERS) \ 42 $(LOCAL_PATH)/include/ 43 44# Accommodate arm-eabi-4.4.3 tools that don't set __ANDROID__ 45LOCAL_CFLAGS:=-D__ANDROID__ 46 47LOCAL_SRC_FILES:= \ 48 libiptc/libip6tc.c \ 49 50 51LOCAL_MODULE_TAGS:= 52LOCAL_MODULE:=libip6tc 53 54include $(BUILD_STATIC_LIBRARY) 55 56#---------------------------------------------------------------- 57# libiptc 58 59#include $(CLEAR_VARS) 60# 61#LOCAL_C_INCLUDES:= \ 62# $(KERNEL_HEADERS) \ 63# $(LOCAL_PATH)/include/ 64# 65#LOCAL_CFLAGS:=-DNO_SHARED_LIBS=1 66# 67#LOCAL_SRC_FILES:= 68# 69# 70#LOCAL_MODULE_TAGS:= 71#LOCAL_MODULE:=libiptc 72# 73#LOCAL_STATIC_LIBRARIES := \ 74# libip4tc \ 75# libip6tc \ 76# 77#include $(BUILD_STATIC_LIBRARY) 78 79#---------------------------------------------------------------- 80# libxtables 81 82include $(CLEAR_VARS) 83 84LOCAL_C_INCLUDES:= \ 85 $(LOCAL_PATH)/include/ \ 86 $(KERNEL_HEADERS) \ 87 88LOCAL_CFLAGS:=-DNO_SHARED_LIBS=1 89LOCAL_CFLAGS+=-DXTABLES_INTERNAL 90LOCAL_CFLAGS+=-DXTABLES_LIBDIR=\"xtables_libdir_not_used\" 91# Accommodate arm-eabi-4.4.3 tools that don't set __ANDROID__ 92LOCAL_CFLAGS+=-D__ANDROID__ 93 94LOCAL_LDFLAGS:=-version-info 5:0:0 95LOCAL_SRC_FILES:= \ 96 xtables.c xtoptions.c 97 98 99LOCAL_MODULE_TAGS:= 100LOCAL_MODULE:=libxtables 101 102include $(BUILD_STATIC_LIBRARY) 103 104#---------------------------------------------------------------- 105#---------------------------------------------------------------- 106## extentsion 107 108MY_srcdir:=$(LOCAL_PATH)/extensions 109# Exclude some modules that are problematic to compile (types/header). 110MY_excluded_modules:=TCPOPTSTRIP 111 112MY_pfx_build_mod := $(patsubst ${MY_srcdir}/libxt_%.c,%,$(wildcard ${MY_srcdir}/libxt_*.c)) 113MY_pf4_build_mod := $(patsubst ${MY_srcdir}/libipt_%.c,%,$(wildcard ${MY_srcdir}/libipt_*.c)) 114MY_pf6_build_mod := $(patsubst ${MY_srcdir}/libip6t_%.c,%,$(wildcard ${MY_srcdir}/libip6t_*.c)) 115MY_pfx_build_mod := $(filter-out ${MY_excluded_modules} dccp ipvs,${MY_pfx_build_mod}) 116MY_pf4_build_mod := $(filter-out ${MY_excluded_modules} dccp ipvs,${MY_pf4_build_mod}) 117MY_pf6_build_mod := $(filter-out ${MY_excluded_modules} dccp ipvs,${MY_pf6_build_mod}) 118MY_pfx_objs := $(patsubst %,libxt_%.o,${MY_pfx_build_mod}) 119MY_pf4_objs := $(patsubst %,libipt_%.o,${MY_pf4_build_mod}) 120MY_pf6_objs := $(patsubst %,libip6t_%.o,${MY_pf6_build_mod}) 121 122#---------------------------------------------------------------- 123# libext 124# TODO(jpa): Trun this into a function/macro as libext{,4,6} are all the same. 125 126include $(CLEAR_VARS) 127 128LOCAL_MODULE_TAGS:= 129LOCAL_MODULE:=libext 130 131# LOCAL_MODULE_CLASS must be defined before calling $(local-intermediates-dir) 132# 133LOCAL_MODULE_CLASS := STATIC_LIBRARIES 134MY_intermediates := $(call local-intermediates-dir) 135 136# LOCAL_PATH/extensions needed because of dirty #include "blabla.c" 137LOCAL_C_INCLUDES:= \ 138 $(LOCAL_PATH)/include/ \ 139 $(KERNEL_HEADERS) \ 140 $(MY_intermediates)/extensions/ \ 141 $(LOCAL_PATH)/extensions/ 142 143LOCAL_CFLAGS:=-DNO_SHARED_LIBS=1 144# The $* does not work as expected. It ends up empty. Even with SECONDEXPANSION. 145# LOCAL_CFLAGS+=-D_INIT=lib$*_init 146LOCAL_CFLAGS+=-DXTABLES_INTERNAL 147# Accommodate arm-eabi-4.4.3 tools that don't set __ANDROID__ 148LOCAL_CFLAGS+=-D__ANDROID__ 149 150MY_initext_func := $(addprefix xt_,${MY_pfx_build_mod}) 151MY_GEN_INITEXT:= $(MY_intermediates)/extensions/initext.c 152$(MY_GEN_INITEXT): 153 @mkdir -p $(dir $@) 154 @( \ 155 echo "" >$@; \ 156 for i in ${MY_initext_func}; do \ 157 echo "extern void lib$${i}_init(void);" >>$@; \ 158 done; \ 159 echo "void init_extensions(void);" >>$@; \ 160 echo "void init_extensions(void)" >>$@; \ 161 echo "{" >>$@; \ 162 for i in ${MY_initext_func}; do \ 163 echo " ""lib$${i}_init();" >>$@; \ 164 done; \ 165 echo "}" >>$@; \ 166 ); 167 168MY_lib_sources:= \ 169 $(patsubst %,$(LOCAL_PATH)/extensions/libxt_%.c,${MY_pfx_build_mod}) 170 171MY_gen_lib_sources:= $(patsubst $(LOCAL_PATH)/%,${MY_intermediates}/%,${MY_lib_sources}) 172 173${MY_gen_lib_sources}: PRIVATE_PATH := $(LOCAL_PATH) 174${MY_gen_lib_sources}: PRIVATE_CUSTOM_TOOL = $(PRIVATE_PATH)/extensions/filter_init $(PRIVATE_PATH)/extensions/$(notdir $@) > $@ 175${MY_gen_lib_sources}: PRIVATE_MODULE := $(LOCAL_MODULE) 176${MY_gen_lib_sources}: PRIVATE_C_INCLUDES := $(LOCAL_C_INCLUDES) 177${MY_gen_lib_sources}: $(MY_lib_sources) 178 $(transform-generated-source) 179 180$(MY_intermediates)/extensions/initext.o : $(MY_GEN_INITEXT) $(MY_gen_lib_sources) 181 182LOCAL_GENERATED_SOURCES:= $(MY_GEN_INITEXT) $(MY_gen_lib_sources) 183 184include $(BUILD_STATIC_LIBRARY) 185 186#---------------------------------------------------------------- 187# libext4 188 189include $(CLEAR_VARS) 190 191LOCAL_MODULE_TAGS:= 192LOCAL_MODULE:=libext4 193 194# LOCAL_MODULE_CLASS must be defined before calling $(local-intermediates-dir) 195# 196LOCAL_MODULE_CLASS := STATIC_LIBRARIES 197MY_intermediates := $(call local-intermediates-dir) 198 199# LOCAL_PATH/extensions needed because of dirty #include "blabla.c" 200LOCAL_C_INCLUDES:= \ 201 $(LOCAL_PATH)/include/ \ 202 $(KERNEL_HEADERS) \ 203 $(MY_intermediates)/extensions/ \ 204 $(LOCAL_PATH)/extensions/ 205 206LOCAL_CFLAGS:=-DNO_SHARED_LIBS=1 207# The $* does not work as expected. It ends up empty. Even with SECONDEXPANSION. 208# LOCAL_CFLAGS+=-D_INIT=lib$*_init 209LOCAL_CFLAGS+=-DXTABLES_INTERNAL 210# Accommodate arm-eabi-4.4.3 tools that don't set __ANDROID__ 211LOCAL_CFLAGS+=-D__ANDROID__ 212 213MY_initext4_func := $(addprefix ipt_,${MY_pf4_build_mod}) 214MY_GEN_INITEXT4:= $(MY_intermediates)/extensions/initext4.c 215$(MY_GEN_INITEXT4): 216 @mkdir -p $(dir $@) 217 @( \ 218 echo "" >$@; \ 219 for i in ${MY_initext4_func}; do \ 220 echo "extern void lib$${i}_init(void);" >>$@; \ 221 done; \ 222 echo "void init_extensions4(void);" >>$@; \ 223 echo "void init_extensions4(void)" >>$@; \ 224 echo "{" >>$@; \ 225 for i in ${MY_initext4_func}; do \ 226 echo " ""lib$${i}_init();" >>$@; \ 227 done; \ 228 echo "}" >>$@; \ 229 ); 230 231MY_lib_sources:= \ 232 $(patsubst %,$(LOCAL_PATH)/extensions/libipt_%.c,${MY_pf4_build_mod}) 233 234MY_gen_lib_sources:= $(patsubst $(LOCAL_PATH)/%,${MY_intermediates}/%,${MY_lib_sources}) 235 236${MY_gen_lib_sources}: PRIVATE_PATH := $(LOCAL_PATH) 237${MY_gen_lib_sources}: PRIVATE_CUSTOM_TOOL = $(PRIVATE_PATH)/extensions/filter_init $(PRIVATE_PATH)/extensions/$(notdir $@) > $@ 238${MY_gen_lib_sources}: PRIVATE_MODULE := $(LOCAL_MODULE) 239${MY_gen_lib_sources}: PRIVATE_C_INCLUDES := $(LOCAL_C_INCLUDES) 240${MY_gen_lib_sources}: $(MY_lib_sources) 241 $(transform-generated-source) 242 243$(MY_intermediates)/extensions/initext4.o : $(MY_GEN_INITEXT4) $(MY_gen_lib_sources) 244 245LOCAL_GENERATED_SOURCES:= $(MY_GEN_INITEXT4) ${MY_gen_lib_sources} 246 247include $(BUILD_STATIC_LIBRARY) 248 249#---------------------------------------------------------------- 250# libext6 251 252include $(CLEAR_VARS) 253 254LOCAL_MODULE_TAGS:= 255LOCAL_MODULE:=libext6 256 257# LOCAL_MODULE_CLASS must be defined before calling $(local-intermediates-dir) 258# 259LOCAL_MODULE_CLASS := STATIC_LIBRARIES 260MY_intermediates := $(call local-intermediates-dir) 261 262# LOCAL_PATH/extensions needed because of dirty #include "blabla.c" 263LOCAL_C_INCLUDES:= \ 264 $(LOCAL_PATH)/include/ \ 265 $(KERNEL_HEADERS) \ 266 $(MY_intermediates)/extensions/ \ 267 $(LOCAL_PATH)/extensions/ 268 269LOCAL_CFLAGS:=-DNO_SHARED_LIBS=1 270# The $* does not work as expected. It ends up empty. Even with SECONDEXPANSION. 271# LOCAL_CFLAGS+=-D_INIT=lib$*_init 272LOCAL_CFLAGS+=-DXTABLES_INTERNAL 273# Accommodate arm-eabi-4.4.3 tools that don't set __ANDROID__ 274LOCAL_CFLAGS+=-D__ANDROID__ 275 276MY_initext6_func := $(addprefix ip6t_,${MY_pf6_build_mod}) 277MY_GEN_INITEXT6:= $(MY_intermediates)/extensions/initext6.c 278$(MY_GEN_INITEXT6): 279 @mkdir -p $(dir $@) 280 @( \ 281 echo "" >$@; \ 282 for i in ${MY_initext6_func}; do \ 283 echo "extern void lib$${i}_init(void);" >>$@; \ 284 done; \ 285 echo "void init_extensions6(void);" >>$@; \ 286 echo "void init_extensions6(void)" >>$@; \ 287 echo "{" >>$@; \ 288 for i in ${MY_initext6_func}; do \ 289 echo " ""lib$${i}_init();" >>$@; \ 290 done; \ 291 echo "}" >>$@; \ 292 ); 293 294MY_lib_sources:= \ 295 $(patsubst %,$(LOCAL_PATH)/extensions/libip6t_%.c,${MY_pf6_build_mod}) 296 297MY_gen_lib_sources:= $(patsubst $(LOCAL_PATH)/%,${MY_intermediates}/%,${MY_lib_sources}) 298 299${MY_gen_lib_sources}: PRIVATE_PATH := $(LOCAL_PATH) 300${MY_gen_lib_sources}: PRIVATE_CUSTOM_TOOL = $(PRIVATE_PATH)/extensions/filter_init $(PRIVATE_PATH)/extensions/$(notdir $@) > $@ 301${MY_gen_lib_sources}: PRIVATE_MODULE := $(LOCAL_MODULE) 302${MY_gen_lib_sources}: PRIVATE_C_INCLUDES := $(LOCAL_C_INCLUDES) 303${MY_gen_lib_sources}: $(MY_lib_sources) 304 $(transform-generated-source) 305 306$(MY_intermediates)/extensions/initext6.o : $(MY_GEN_INITEXT6) $(MY_gen_lib_sources) 307 308LOCAL_GENERATED_SOURCES:= $(MY_GEN_INITEXT6) $(MY_gen_lib_sources) 309 310include $(BUILD_STATIC_LIBRARY) 311 312#---------------------------------------------------------------- 313# iptables 314 315 316include $(CLEAR_VARS) 317 318LOCAL_C_INCLUDES:= \ 319 $(LOCAL_PATH)/include/ 320 321LOCAL_CFLAGS:=-DNO_SHARED_LIBS=1 322LOCAL_CFLAGS+=-DALL_INCLUSIVE 323LOCAL_CFLAGS+=-DXTABLES_INTERNAL 324# Accommodate arm-eabi-4.4.3 tools that don't set __ANDROID__ 325LOCAL_CFLAGS+=-D__ANDROID__ 326 327LOCAL_SRC_FILES:= \ 328 iptables-standalone.c iptables.c xshared.c 329 330 331LOCAL_MODULE_TAGS:=debug 332LOCAL_MODULE:=iptables 333 334LOCAL_STATIC_LIBRARIES := \ 335 libext \ 336 libext4 \ 337 libip4tc \ 338 libxtables 339 340include $(BUILD_EXECUTABLE) 341 342#---------------------------------------------------------------- 343# ip6tables 344include $(CLEAR_VARS) 345 346LOCAL_C_INCLUDES:= \ 347 $(LOCAL_PATH)/include/ 348 349LOCAL_CFLAGS:=-DNO_SHARED_LIBS=1 350LOCAL_CFLAGS+=-DALL_INCLUSIVE 351LOCAL_CFLAGS+=-DXTABLES_INTERNAL 352# Accommodate arm-eabi-4.4.3 tools that don't set __ANDROID__ 353LOCAL_CFLAGS+=-D__ANDROID__ 354 355LOCAL_SRC_FILES:= \ 356 ip6tables-standalone.c ip6tables.c xshared.c 357 358 359LOCAL_MODULE_TAGS:=debug 360LOCAL_MODULE:=ip6tables 361 362LOCAL_STATIC_LIBRARIES := \ 363 libext \ 364 libext6 \ 365 libip6tc \ 366 libxtables 367 368include $(BUILD_EXECUTABLE) 369 370 371#---------------------------------------------------------------- 372endif 373