Hi All,
I am writing package and it has many .c files and result into two executable. so I have studied existing packages and wrote Makefile.
builddir#make package/utils/mypkg/compile -j 1 V=s
runs ok but no output bin files:
Below is Makefile:
###################Makefile####################
include $(TOPDIR)/rules.mk
PKG_NAME:=mypkg
PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/mkpkg
SECTION:=utils
CATEGORY:=Utilities
TITLE:=MYPKG for makefile test
# DEPENDS:=@DISPLAY_SUPPORT
endef
define Package/mkpkg/description
This package contains mkpkg.
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./* $(PKG_BUILD_DIR)/
endef
define Build/Configure
endef
define Build/Compile
DSOURCES = filea.c fileb.c filec.c filed.c main.c
DOBJECTS = $(DSOURCES:.c=.o)
CTLSOURCES = ctl_main.c ctl_cli.c ctl_socket_client.c
CTLOBJECTS = $(CTLSOURCES:.c=.o)
CC="$(TARGET_CC)"
CFLAGS = -Wall -Werror -fno-strict-aliasing -O2 -g -D_REENTRANT -D__LINUX__ \
-DVERSION=$(version) -DBUILD=$(build) -I. -I./include -I./mypkglib
all: mypkgd mypkgctl
mypkglib:
make -C mypkglib libmypkg.a
.PHONY: mypkglib
mypkgd: $(DOBJECTS) mypkglib
$(CC) -o $@ $(DOBJECTS) -L ./mypkglib -lrmypkg
mypkgctl: $(CTLOBJECTS)
$(CC) -o $@ $(CTLOBJECTS)
clean:
rm -f *.o mypkgd mypkgctl
make -C mypkglib clean
endef
define Package/mypkg/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/mypkgd $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/mypkgctl $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,mypkg))
##################################Makefile End########################
I get error while make:
install: cannot stat '/home/user/Documents/svn_out/untar/openwrtMTKSW/build_dir/target-mipsel_1004kc+dsp_uClibc-0.9.33.2/mypkg/mypkgd': No such file or directory
am I missing something?
Any hint would be helpful.
Thanks!