Android移植之wirelesstools

                                    Android移植之wirelesstools

1.移植准备

       1,源代码地址:www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html,下载wireless_tools.30.pre8.tar.gz,并放到Adroid_root/external

2,解压到Adroid_root/external/ wireless_tools.29;

       tar –zxvf wireless_tools.29.tar.gz

2.           创建Android.mk

       cat Android.mk

LOCAL_PATH:= $(call my-dir)

################## build iwlib ###################

include $(CLEAR_VARS)

LOCAL_SRC_FILES := iwlib.c

LOCAL_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Winline -MMD -fPIC

LOCAL_MODULE:= libiw

LOCAL_STATIC_LIBRARIES := libcutils libc libm

include $(BUILD_STATIC_LIBRARY)

################## build iwconfig ###################

include $(CLEAR_VARS)

LOCAL_SRC_FILES := iwconfig.c

LOCAL_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Winline -MMD -fPIC

LOCAL_MODULE:= iwconfig

LOCAL_STATIC_LIBRARIES := libcutils libc libm libiw

#LOCAL_FORCE_STATIC_EXECUTABLE := true

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) # install to system/xbin

#LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_UNSTRIPPED)

#LOCAL_MODULE_TAGS := eng user

include $(BUILD_EXECUTABLE)

################## build iwlist ###################

include $(CLEAR_VARS)

LOCAL_SRC_FILES := iwlist.c iwlib.h

LOCAL_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Winline -MMD -fPIC

LOCAL_MODULE:= iwlist

LOCAL_STATIC_LIBRARIES := libcutils libc libm libiw

#LOCAL_FORCE_STATIC_EXECUTABLE := true

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) # install to system/xbin

#LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_UNSTRIPPED)

#LOCAL_MODULE_TAGS := eng user

include $(BUILD_EXECUTABLE)

 

 

这里如果要编译其它的工具,需要自己添加新的类似的设置;

3.            代码修改

wireless.22.h 更名为wireless.h

其中增加蓝色的两行:

#if 0

#define IW_EV_LCP_PK_LEN        (4)

/* Size of the various events when packed in stream */

#define IW_EV_CHAR_PK_LEN       (IW_EV_LCP_PK_LEN + IFNAMSIZ)

#define IW_EV_UINT_PK_LEN       (IW_EV_LCP_PK_LEN + sizeof(__u32))

#define IW_EV_FREQ_PK_LEN       (IW_EV_LCP_PK_LEN + sizeof(struct iw_freq))

#define IW_EV_PARAM_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(struct iw_param))

#define IW_EV_ADDR_PK_LEN       (IW_EV_LCP_PK_LEN + sizeof(struct sockaddr))

#define IW_EV_QUAL_PK_LEN       (IW_EV_LCP_PK_LEN + sizeof(struct iw_quality))

#define IW_EV_POINT_PK_LEN      (IW_EV_LCP_LEN + 4)

#endif

修改ifrename.c 增加getline的函数,代码可以从external/genext2fs/genext2fs.c中获得

修改iwlib.h,将#include 改为#include

 

4.         编译

$cd Adroid_root

$source build/envsetup.sh

$mmm external/wireless_tools.29

 

5.         目标文件

        Android_root/build/out/target/product/generic/symbols/system/bin/目录下就可以看到你刚才编译生成的文件了;这个目录里的文件是带符号信息的,方便调试;

 

你可能感兴趣的:(android,module,build,path,library,tags)