I am trying to compile OpenWRT with a custom package I have made inside it. Here is the OpenWRT Makefile for my package:
#
# Copyright (C) 2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# $Id$
include $(TOPDIR)/rules.mk
PKG_NAME:=amld
PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk
define Package/amld
SECTION:=utils
CATEGORY:=Utilities
TITLE:=amld -- prints a snarky message
DEPENDS:=+libssl +libcrypto +librt
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
define Build/Configure
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) $(TARGET_CONFIGURE_OPTS)
endef
define Package/amld/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/amld $(1)/bin/
endef
$(eval $(call BuildPackage,amld))
When I compile I get the following error:
Package amld is missing dependencies for the following libraries:
libcrypto.so.1.0.0
librt.so.0
libssl.so.1.0.0
I am unsure of what to add, does anybody have any ideas? Thanks
Edit
Here is my Makefile for my package:
LDFLAGS=-lssl -lcrypto -lrt
CFLAGS=-g -I /usr/lib/i386-linux-gnu
all: amlpkcs12 amld
amlpkcs12:amlpkcs12.o
$(CC) amlpkcs12.o -g -o amlpkcs12 $(LDFLAGS)
amld: amld.o iot.o bridge.o sysconf.o
$(CC) bridge.o iot.o amld.o sysconf.o -g -o amld $(LDFLAGS)
amlpkcs12.o: amlpkcs12.c
$(CC) $(CFLAGS) -c amlpkcs12.c
amld.o: amld.c
$(CC) $(CFLAGS) -c -g -DVERSION=\"1.0\" amld.c
sysconf.o: sysconf.c sysconf.h
$(CC) $(CFLAGS) -c sysconf.c
bridge.o:bridge.c bridge.h iot.h
$(CC) $(CFLAGS) -c bridge.c
iot.o: iot.c iot.h
$(CC) $(CFLAGS) -c -g iot.c
clean:
rm *.o amlpkcs12 amld
Update
Also see my question and answer here if you're still having trouble.
Finally got it, had to add change
$(eval $(call BuildPackage,amld))
to
$(eval $(call BuildPackage,amld,+libopenssl))
Full Makefile:
include $(TOPDIR)/rules.mk
PKG_NAME:=amld
PKG_RELEASE:=1
TARGET_LDFLAGS+=/usr/include/openssl
PKG_BUILD_DEPENDS:=libopenssl
include $(INCLUDE_DIR)/package.mk
define Package/amld
SECTION:=utils
DEPENDS:=+libopenssl
CATEGORY:=Utilities
TITLE:=amld -- AccessMyLan Daemon
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./files/* $(PKG_BUILD_DIR)/
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) $(TARGET_CONFIGURE_OPTS)
endef
define Package/amld/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/amld $(1)/bin/
endef
$(eval $(call BuildPackage,amld,+libopenssl))
Please check OpenWRT\\tmp\\.config-package.in
. This has the dependency tree generated as soon as build starts. It can give some hints
If you recompiled a package that produces a new lib that's not being installed in build_dir/root-xyz, and that lib is now needed by another package (for example you rebuilt gcc and enabled libasan.so, so now packages that require libasan.so will complain), you can fix things up manually:
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.