本文记录为buildroot添加一个包的步骤。

假定:

  1. 包名为si534xApp-master.tar.gz,放置在/home/alan/ARC/ARC-Microwave-WEB-data-transmission/source_aleksandr/si534xApp目录,由Git管理。
  2. 该包包含源文件和Makefile,验证可成功编译运
    Makefile的内容:

    OBJS = si534xApp.o
    #CROSS_COMPILE = /home/alan/ARC/buildroot/output/host/usr/bin/aarch64-buildroot-linux-gnu- #buildroot不用,单独编译时使用,以找到编译器位置
    CC = $(CROSS_COMPILE)gcc
    OUT_BIN = si534xApp
    dep_file = .$@.d
    
    all: $(OBJS)
         $(CC) $(LDFLAGS) -g -o $(OUT_BIN) $^
    
    %.o: %.c
         $(CC) $(LDFLAGS) -Wp,-MD,$(dep_file) -c -o $@ $<
    
    clean:
         rm -rf *.o
         rm -rf $(OUT_BIN)
         rm -f $(shell find -name "*.d")
  3. buildroot路径/home/alan/ARC/buildroot
    添加步骤
  4. 进入/home/alan/ARC/buildroot/package目录,创建si534x目录
  5. 在该目录下:$ touch Config.in si534x.mk
  6. 编辑/home/alan/ARC/buildroot/package/Config.in配置文件,在适当的组后面添加下列内容,以便buildroot在配置时索引到加入的si534x/Config.in。本例是添加在menu "Debugging, profiling and benchmark"后面,如下:

    source "package/si534x/Config.in"
  7. 编辑si534x/Config.in,添加供在buildroot作menuconfig配置的内容:

    config BR2_PACKAGE_SI534X
    bool "si534x"
    help
     Application to access Si534x
  8. 编辑si534x/si534x.mk,添加如果被选择,要执行那些操作:

    SI534X_VERSION = master #包的版本
    SI534X_SITE_METHOD = git #包如何管理
    SI534X_SITE = /home/alan/ARC/ARC-Microwave-WEB-data-transmission/source_aleksandr/si534xApp #包放置的位置
    SI534X_SOURCE = si534xApp-$(SI534X_VERSION).tar.gz #包名
    SI534X_ALWAYS_BUILD = YES
    SI534X_INSTALL_STAGING = YES
    SI534X_CFLAGS =
    SI534X_LDFLAGS =
    OUT_BIN = si534xApp #目标文件名
    SI534X_MAKE_FLAGS += \
         CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" \
         CC=$(TARGET_CC)      \
         OUT_BIN=$(OUT_BIN)  \
         AR=$(TARGET_AR)      \
         STRIP=$(TARGET_STRIP) \
         CFLAGS=$(SI534X_CFLAGS) \
         LDFLAGS=$(SI534X_LDFLAGS) \
         STAGING_DIR=$(STAGING_DIR)  \
         TARGET_DIR=$(TARGET_DIR)
    
    define SI534X_BUILD_CMDS
     $(MAKE) clean  -C $(@D)
     $(MAKE) $(SI534X_MAKE_FLAGS)  -C $(@D)
    endef

    如此就完成了包的加入,接下来在buildroot作menuconfig时,就可以选择配置:

    make menuconfig
    Target packages ---> Debugging, profiling and benchmark ---> si534x

然后编译即可:

make

Alan王伦胜
1 声望0 粉丝

引用和评论

0 条评论