Здравствуйте.
Про кросскомпиляцию отдельных пакетов для Openwrt.
Прошу помощи.
Для Openwrt, для отдельного пакета (например homestd.c) собираю вот с таким мейкфалом:
include $(TOPDIR)/rules.mk
PKG_NAME:=homestd
PKG_VERSION:=1
PKG_RELEASE:=1
PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/homestd
SECTION:=utils
CATEGORY:=Utilities
TITLE:=homestd - Homestd utility
DEPENDS:=+libpthread
endef
define Package/homestd/description
homestd - Homestd utility
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)/homestd.o $(PKG_BUILD_DIR)/homestd.c
$(TARGET_CC) $(TARGET_LDFLAGS) -o $(PKG_BUILD_DIR)/homestd $(PKG_BUILD_DIR)/homestd.o -lpthread
endef
define Package/homestd/install
$(INSTALL_DIR) $(1)/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/homestd $(1)/
endef
$(eval $(call BuildPackage,homestd))
Сейчас хочу скомпилить некую программу для Openwrt. Программа (для некой девайсины от Мастеркита) поставляется с файлами hidapi.h, hid-libusb.c, mp751.c.
И с файлом install.sh
#!/bin/bash
cd
sudo apt-get install g++ libusb-1.0-0-dev
cd /home/pi/mp751
sudo make clean
sudo make
sudo rm mp751.o hid-libusb.o
all: mp751
mp751: mp751.o hid-libusb.o
gcc mp751.o hid-libusb.o -o mp751 -lusb-1.0 -lrt -lpthread
mp751.o: mp751.c
gcc -c mp751.c
hid-libusb.o: hid-libusb.c
gcc -I/usr/include/libusb-1.0 -I. -c hid-libusb.c
clean:
rm -f hid-libusb.o mp751.o mp751
.PHONY: clean
Объясните пожалуйста или покажите пример, как совместить эти два мейкфайла? Или точнее превратить этот мейкфайл в мейкфайл для OpenWrt?
Спасибо.