Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.01.2018, 16:50   #1
sana555
Senior Member
 
Регистрация: 22.09.2017
Сообщений: 338
Вес репутации: 441
sana555 is a splendid one to beholdsana555 is a splendid one to beholdsana555 is a splendid one to beholdsana555 is a splendid one to beholdsana555 is a splendid one to beholdsana555 is a splendid one to beholdsana555 is a splendid one to beholdsana555 is a splendid one to behold
По умолчанию Создание 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))
В папку src, положил файл hello.с с содержимым:
Код:
#include <stdio.h>

int main (void)
{
  printf("Hello world, i'm cool hacker!\n");
  return 0;
В make menuconfig пункт меню появился(хоть это радует...), выбрал его и выполнил:
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
Так же пробовал команду make -j3 V=1, тоже ошибка... Что нужно подправить?

Последний раз редактировалось sana555; 30.01.2018 в 16:54.
sana555 вне форума   Ответить с цитированием
 


Здесь присутствуют: 5 (пользователей: 0 , гостей: 5)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 19:11. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика