buildroot添加HOST端工具
以zlog为例,假设我们需要在host添加编译一个zlog库。
-
首先,在package/zlog/下面新增一个Config.in.host文件,对应命名都比Config.in多一个host字段:
diff --git a/package/zlog/Config.in.host b/package/zlog/Config.in.host new file mode 100644 index 00000000..0191c92f --- /dev/null +++ b/package/zlog/Config.in.host @@ -0,0 +1,12 @@ +config BR2_PACKAGE_HOST_ZLOG + bool "host zlog" + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_STATIC_LIBS + help + zlog is a reliable, high-performance, thread safe, flexible, + clear-model, pure C logging library. + + https://github.com/HardySimpson/zlog + +comment "zlog needs a toolchain w/ threads, dynamic library" + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
-
在zlog/zlog.mk添加HOST端的依赖、编译命令和安装命令:
diff --git a/package/zlog/zlog.mk b/package/zlog/zlog.mk index e2410d36..cabbb3a3 100644 --- a/package/zlog/zlog.mk +++ b/package/zlog/zlog.mk @@ -9,12 +9,17 @@ ZLOG_SITE = $(call github,HardySimpson,zlog,$(ZLOG_VERSION)) ZLOG_LICENSE = LGPL-2.1 ZLOG_LICENSE_FILES = COPYING ZLOG_INSTALL_STAGING = YES +#HOST_PIGZ_DEPENDENCIES = host-zlib define ZLOG_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) CC="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS)" -C $(@D) all endef +define HOST_ZLOG_BUILD_CMDS + $(HOST_MAKE_ENV) $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) +endef + define ZLOG_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) PREFIX=$(STAGING_DIR)/usr -C $(@D) install endef @@ -23,4 +28,9 @@ define ZLOG_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) PREFIX=$(TARGET_DIR)/usr -C $(@D) install endef + +define HOST_ZLOG_INSTALL_CMDS + $(HOST_MAKE_ENV) $(MAKE) PREFIX=$(HOST_DIR)/usr -C $(@D) install +endef + $(eval $(generic-package))
-
在ackage/Config.in.host中添加source “package/zlog/Config.in.host”
diff --git a/package/Config.in.host b/package/Config.in.host index e5fbb07f..664d650f 100644 --- a/package/Config.in.host +++ b/package/Config.in.host @@ -98,6 +98,7 @@ menu "Host utilities" source "package/vboot-utils/Config.in.host" source "package/xorriso/Config.in.host" source "package/zip/Config.in.host" + source "package/zlog/Config.in.host" source "package/zstd/Config.in.host"
之后,我们就可以在menuconfig中看到host zlog的选项了:
之后make host-zlog,就可以直接编译安装,默认安装在buildroot/output/host/之中:
$ ll output/host/lib/libzlog.so lrwxrwxrwx 1 root root 12 5月 13 10:45 output/host/lib/libzlog.so -> libzlog.so.1* $ ll output/host/include/zlog.h -rw-rw-r-- 1 root root 10779 5月 6 2020 output/host/include/zlog.h
上一篇:
IDEA上Java项目控制台中文乱码