Buildroot Quick Start
来自Jack's Lab
(版本间的差异)
(→准备代码) |
(→Overview) |
||
第4行: | 第4行: | ||
<source lang=bash> | <source lang=bash> | ||
− | comcat@jackslab:~ | + | comcat@jackslab:~/buildroot-2020.11.2$ ls |
arch board boot CHANGES Config.in Config.in.legacy configs COPYING DEVELOPERS dl docs fs linux Makefile Makefile.legacy output package README support system toolchain utils | arch board boot CHANGES Config.in Config.in.legacy configs COPYING DEVELOPERS dl docs fs linux Makefile Makefile.legacy output package README support system toolchain utils | ||
</source> | </source> | ||
<br> | <br> | ||
+ | |||
+ | == 添加包 == | ||
+ | |||
+ | <source lang=bash> | ||
+ | comcat@jackslab:~/buildroot-2020.11.2$ mkdir package/helloworld/ | ||
+ | </source> | ||
+ | |||
+ | 在该目录下新建 '''Config.in''': | ||
+ | |||
+ | <source lang=bash> | ||
+ | config BR2_PACKAGE_HELLOWORLD | ||
+ | bool "helloworld" | ||
+ | help | ||
+ | hello world package | ||
+ | </source> | ||
+ | |||
+ | 新建 helloworld.mk: | ||
+ | |||
+ | <source lang=bash> | ||
+ | comcat@lab:~/buildroot-2020.11.2$ cat package/helloworld/helloworld.mk | ||
+ | HELLOWORLD_VERSION = 1.0.0 | ||
+ | HELLOWORLD_SITE = $(TOPDIR)/../helloworld_src | ||
+ | HELLOWORLD_SITE_METHOD = local | ||
+ | |||
+ | define HELLOWORLD_BUILD_CMDS | ||
+ | $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) | ||
+ | endef | ||
+ | |||
+ | define HELLOWORLD_INSTALL_TARGET_CMDS | ||
+ | $(INSTALL) -D -m 0755 $(@D)/helloworld $(TARGET_DIR)/usr/bin/helloworld | ||
+ | #$(INSTALL) -D -m 0755 $(@D)/rx $(TARGET_DIR)/usr/bin/rx | ||
+ | endef | ||
+ | |||
+ | $(eval $(generic-package)) | ||
+ | </source> | ||
== 准备代码 == | == 准备代码 == |
2021年2月9日 (二) 15:40的版本
1 Overview
目录结构:
comcat@jackslab:~/buildroot-2020.11.2$ ls arch board boot CHANGES Config.in Config.in.legacy configs COPYING DEVELOPERS dl docs fs linux Makefile Makefile.legacy output package README support system toolchain utils
2 添加包
comcat@jackslab:~/buildroot-2020.11.2$ mkdir package/helloworld/
在该目录下新建 Config.in:
config BR2_PACKAGE_HELLOWORLD bool "helloworld" help hello world package
新建 helloworld.mk:
comcat@lab:~/buildroot-2020.11.2$ cat package/helloworld/helloworld.mk HELLOWORLD_VERSION = 1.0.0 HELLOWORLD_SITE = $(TOPDIR)/../helloworld_src HELLOWORLD_SITE_METHOD = local define HELLOWORLD_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define HELLOWORLD_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/helloworld $(TARGET_DIR)/usr/bin/helloworld #$(INSTALL) -D -m 0755 $(@D)/rx $(TARGET_DIR)/usr/bin/rx endef $(eval $(generic-package))
3 准备代码
$ mkdir ~/helloworld_src
放入 helloworld.c Makefile:
helloworld.c:
#include <stdio.h> #include <unistd.h> int main(int argc, int *argv[]) { while(1) { printf("Hello world\n"); sleep(1); } return 0; }
Makefile:
OBJS=helloworld.o all: helloworld helloworld: $(OBJS) $(CC) $(LDFLAGS) -o helloworld $(OBJS) $(OBJS): %.o: %.c $(CC) $(CFLAGS) -c -o $@ $<