|
|
Опции темы | Поиск в этой теме | Опции просмотра |
30.01.2018, 16:50 | #1 |
Senior Member
Регистрация: 22.09.2017
Сообщений: 338
Вес репутации: 442 |
Создание Makefile для стороннего пакета от простого к сложному
Решил начать знакомство с Makefile, с простого примера по созданию стороннего пакета в lede: https://istarik.ru/blog/openwrt/49.html
Создал директорию: /home/sana/source/package/kernel/test, в ней папку src и файл Makefile с содержимым: Код:
#===================================== # test Makefile #===================================== include $(TOPDIR)/rules.mk PKG_NAME:=test PKG_VERSION:=1 PKG_RELEASE:=1 PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME) include $(INCLUDE_DIR)/package.mk define Package/test SECTION:=kernel CATEGORY:=Kernel modules SUBMENU:=Wireless Drivers TITLE:=test - ddddddddddddddddddddddddddddddd endef define Package/test/description test - ddddddddddddddddddddddddddddddd endef define Build/Prepare mkdir -p $(PKG_BUILD_DIR) $(CP) ./src/* $(PKG_BUILD_DIR)/ endef define Build/Compile $(TARGET_CC) $(TARGET_CFLAGS) -c -o $(PKG_BUILD_DIR)/hello.o $(PKG_BUILD_DIR)/hello.c $(TARGET_CC) $(TARGET_LDFLAGS) -o $(PKG_BUILD_DIR)/test $(PKG_BUILD_DIR)/hello.o endef define Package/test/install $(INSTALL_DIR) $(1)/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/test $(1)/bin/ endef $(eval $(call BuildPackage,test)) Код:
#include <stdio.h> int main (void) { printf("Hello world, i'm cool hacker!\n"); return 0; make package/test/compile V=s На что получил ответ: Код:
sana@sana ~/source $ make package/test/compile V=s make[1]: Entering directory '/home/sana/source' make[2]: Entering directory '/home/sana/source/package/libs/toolchain' if [ -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean; fi echo "libc" >> /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install if [ -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean; fi echo "libgcc" >> /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install if [ -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean; fi if [ -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean; fi if [ -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean; fi if [ -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean; fi echo "libpthread" >> /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install if [ -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean; fi if [ -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean; fi echo "librt" >> /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install if [ -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean; fi if [ -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean; fi if [ -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install /home/sana/source/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/pkginfo/toolchain.default.install.clean; fi make[2]: Leaving directory '/home/sana/source/package/libs/toolchain' make[2]: Entering directory '/home/sana/source/package/kernel/test' arm-openwrt-linux-muslgnueabi-gcc -Os -pipe -mcpu=cortex-a9 -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=soft -iremap /home/sana/source/build_dir/target-arm_cortex-a9_musl-1.1.16_eabi/test:test -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -c -o /home/sana/source/build_dir/target-arm_cortex-a9_musl-1.1.16_eabi/test/hello.o /home/sana/source/build_dir/target-arm_cortex-a9_musl-1.1.16_eabi/test/hello.c /home/sana/source/build_dir/target-arm_cortex-a9_musl-1.1.16_eabi/test/hello.c: In function 'main': /home/sana/source/build_dir/target-arm_cortex-a9_musl-1.1.16_eabi/test/hello.c:6:3: error: expected declaration or statement at end of input return 0; ^ Makefile:41: recipe for target '/home/sana/source/build_dir/target-arm_cortex-a9_musl-1.1.16_eabi/test/.built' failed make[2]: *** [/home/sana/source/build_dir/target-arm_cortex-a9_musl-1.1.16_eabi/test/.built] Error 1 make[2]: Leaving directory '/home/sana/source/package/kernel/test' package/Makefile:105: recipe for target 'package/kernel/test/compile' failed make[1]: *** [package/kernel/test/compile] Error 2 make[1]: Leaving directory '/home/sana/source' /home/sana/source/include/toplevel.mk:198: ошибка выполнения рецепта для цели «package/test/compile» make: *** [package/test/compile] Ошибка 2 Последний раз редактировалось sana555; 30.01.2018 в 16:54. |
Здесь присутствуют: 2 (пользователей: 0 , гостей: 2) | |
|
|