2012年8月31日 星期五

Add lrz/lsz into Android source tree.

開發過程中 , 只因為修改一個小檔案 ( jni 的 .so file ) , 卻需要將 SD 從EVB 移除 , 然後放到 Fedora 上 去複製檔案 , 真的有點 "煩" !! 如果有 lrz/lsz 就好了  !!

好吧 , 移植 lrz/lsz 吧 !! Android 使用 binoic library , 和一般 cross toolchain 的 library 不同 , 並且沒有辦法執行 .configure 去產生 Makefile , Makefile 也不被Andriod Source tree 接受 , 真是大工程........ !!

找找看 , 有沒有人已經將 lrz/lsz 放到 Android 上了 !! 找了兩天..... 發現 linaro 這個組織 , 專門優化 ARM 系統的東西 , 並且在 ICS 4.0.4 上有 lrz/lsz 的 source .....嘿嘿...借來用一下吧 !! 不過也公佈一下 這個組織網頁 ... 如下:

http://www.linaro.org/linux-on-arm

按照 linaro 網頁上說明 , 將整個 source tree repo 下來 , 並將 ./externel/lrzsz 資料夾 移到 TI BSP 的相對應位置上 . 並修改 ./externel/lrzsz/Android.mk , 主要是 style  修改 , 並沒有其它改動 ,修改後如下:

LOCAL_PATH:= $(call my-dir)

lrzsz_local_comm_file := timing.c zperr.c zreadline.c crctab.c \
                                rbsb.c zm.c protname.c tcp.c lsyslog.c \
                                canit.c long-options.c xstrtol.c xstrtoul.c error.c

include $(CLEAR_VARS)

LOCAL_SRC_FILES := lrz.c $(lrzsz_local_comm_file)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := lrz
LOCAL_CFLAGS := -DNFGVMIN -DHAVE_CONFIG_H=1
LOCAL_SHARED_LIBRARIES := libc

include $(BUILD_EXECUTABLE)

include $(CLEAR_VARS)

LOCAL_SRC_FILES := lsz.c $(lrzsz_local_comm_file)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := lsz
LOCAL_CFLAGS := -DNFGVMIN -DHAVE_CONFIG_H=1
LOCAL_SHARED_LIBRARIES := libc

include $(BUILD_EXECUTABLE)


一樣的 make 過程中會編譯但是沒有安裝 , 所以修改 ./build/target/product/core.mk檔案 , 加入 lrz , lsz 兩個 packages name , 修改項目如下:

    libwilhelm \
    libz \
    screencap \
    sensorservice \
    lrz\
    lsz \

# host-only dependencies
ifeq ($(WITH_HOST_DALVIK),true)
    PRODUCT_PACKAGES += \


OK 啦 , 可以 lrz  / lsz 操作了 !! 這樣開發過程會 "爽" 一點  !!

PS. 115200 bsp 遇到大的檔案還是要花很久 , 不過至少一些 .so 或是 testing program 就可以方便多了 !!

1 則留言:

  1. would you please share me your lrzsz source code? when I compile, I got:external/lrzsz/zglobal.h:26:20: fatal error: config.h: No such file or directory.
    but my source code has no config.h.
    Thank you very much.

    回覆刪除