Компиляция приложений для openwrt

Сборка программы для установки в openwrt:



Устанавливаем пакеты для сборки:
sudo apt-get update
sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk flex quilt git-core mkisofs
Скачиваем исходники openwrt в папку:
~/openwrt/

Для создания своих пакетов *.ipk переходим в папку package:
cd ~/openwrt/package
Создаём каталоги для приложения:
mkdir -p program1/src
Создаём файл для сборки пакета:
cd ~/openwrt/package/program1
mcedit  Makefile
с содержимым:
#=====================================
# OpenWrt Makefile
#=====================================
include $(TOPDIR)/rules.mk
PKG_NAME:=program1
PKG_VERSION:=1
PKG_RELEASE:=1
PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/program1
SECTION:=utils
CATEGORY:=Utilities
TITLE:=program1 — Test program
endef
define Package/program1/description
program1 — Test program
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)/program1.o $(PKG_BUILD_DIR)/program1.c
$(TARGET_CC) $(TARGET_LDFLAGS) -o $(PKG_BUILD_DIR)/program1 $(PKG_BUILD_DIR)/program1.o
endef
define Package/program1/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/program1 $(1)/bin/
endef
$(eval $(call BuildPackage,program1))
Файлы для компиляции на C копируем в созданную нами папку src:
~/openwrt/package/program1/src/program1.c
Переходим в каталог openwrt и запустим конфигурацию:
cd ~/openwrt/
make menuconfig
Выбираем категорию Utilities, в ней мы увидим название нашей программы (program1), чтобы собрать отдельным пакетом нам нужно установить букву М напротив названия нашей программы (* — компиляция в прошивку). После выбора, сохраняем конфигурацию в выходим. Перед компилированием выполним команду:
make clean
Эта команда удаляет содержимое каталогов bin и build_dir.
Теперь соберём отдельно наш пакет:
make package/program1/compile V=s
После окончания сборки пакета, ищем его в папке:
~/openwrt/bin/тип процессора/packages

Комментарии