Sure,
Here is the log and the makefile.
Once again, I appreciate any advice.
-Mike
Here is makefile:
##############################################
# OpenWrt Makefile for basestation program
#
#
# Most of the variables used here are defined in
# the include directives below. We just need to
# specify a basic description of the package,
# where to build our program, where to find
# the source files, and where to install the
# compiled program on the router.
#
# Be very careful of spacing in this file.
# Indents should be tabs, not spaces, and
# there should be no trailing whitespace in
# lines that are not commented.
#
##############################################
include $(TOPDIR)/rules.mk
# Name and release number of this package
PKG_NAME:=basestation
PKG_RELEASE:=1
# This specifies the directory where we're going to build the program.
# The root build directory, $(BUILD_DIR), is by default the build_mipsel
# directory in your OpenWrt SDK directory
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/uclibc++.mk
include $(INCLUDE_DIR)/package-defaults.mk
include $(INCLUDE_DIR)/package.mk
# Specify package information for this program.
# The variables defined here should be self explanatory.
define Package/basestation
SECTION:=utils
DEPENDS:=+libpthread +libc +libgcc +libstdcpp +libm
CATEGORY:=Utilities
TITLE:=basestation -- my basestation message
endef
# Specify what needs to be done to prepare for building the package.
# In our case, we need to copy the source files to the build directory.
# This is NOT the default. The default uses the PKG_SOURCE_URL and the
# PKG_SOURCE which is not defined here to download the source from the web.
# In order to just build a simple program that we have just written, it is
# much easier to do it this way.
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) -R src/* $(PKG_BUILD_DIR)/.
rm $(PKG_BUILD_DIR)/CMakeCache.txt
cmake $(PKG_BUILD_DIR)/CMakeLists.txt --build $(PKG_BUILD_DIR)/CMakeLists.txt
endef
#########################################################################################
# The Build/Compile directive needs to be specified in order to customize compilation
# and linking of our program. We need to link to uClibc++ and to specify that we
# do NOT want to link to the standard template library.
#
# To do this we define the LIBS variable. To prevent linking to the standard libraries we
# add "-nodefaultlibs" to the $(LIBS) variable and then specify "-lgcc -lc" to ensure that
# there are no unresolved references to internal GCC library subroutines. Finally
# "-luClibc++" to link to the uClibc++ library. Also, we need to specify "-nostdinc++"
# in the compiler flags to tell the compiler that c++ standard template library functions
# and data structures will be linked to in specified external libraries and not the
# standard libraries.
#########################################################################################
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) ;
endef
# Specify where and how to install the program. Since we only have one file,
# the basestation executable, install it by copying it to the /bin directory on
# the router. The $(1) variable represents the root directory on the router running
# OpenWrt. The $(INSTALL_DIR) variable contains a command to prepare the install
# directory if it does not already exist. Likewise $(INSTALL_BIN) contains the
# command to copy the binary file from its current location (in our case the build
# directory) to the install directory.
define Package/basestation/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tests/moduleTests/moduleTests_run $(1)/bin/
endef
# This line executes the necessary commands to compile our program.
# The above define directives specify all the information needed, but this
# line calls BuildPackage which in turn actually uses this information to
# build a package.
$(eval $(call BuildPackage,basestation))
Here is the log:
]0;root@jauja: ~/openwrtroot@jauja:~/openwrt# make package/compile -j1 V=s
make[1]: Entering directory `/home/mike/openwrt'
make[2]: Entering directory `/home/mike/openwrt/package/libs/toolchain'
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install.clean; fi; echo "libc" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install.clean; fi; echo "libgcc" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install.clean; fi; echo "libstdcpp" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install.clean; fi; echo "libpthread" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install.clean; fi; echo "librt" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/toolchain.default.install
make[2]: Leaving directory `/home/mike/openwrt/package/libs/toolchain'
make[2]: Entering directory `/home/mike/openwrt/package/libs/libnl-tiny'
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libnl-tiny.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libnl-tiny.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libnl-tiny.default.install.clean; fi; echo "libnl-tiny" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libnl-tiny.default.install
make[2]: Leaving directory `/home/mike/openwrt/package/libs/libnl-tiny'
make[2]: Entering directory `/home/mike/openwrt/package/libs/libjson-c'
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libjson-c.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libjson-c.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libjson-c.default.install.clean; fi; echo "libjson-c" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libjson-c.default.install
make[2]: Leaving directory `/home/mike/openwrt/package/libs/libjson-c'
make[2]: Entering directory `/home/mike/openwrt/package/utils/lua'
make[2]: Leaving directory `/home/mike/openwrt/package/utils/lua'
make[2]: Entering directory `/home/mike/openwrt/package/libs/libubox'
echo '2015-11-08' | cmp -s - /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.version || echo '2015-11-08' > /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.version
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install.clean; fi; echo "libubox" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install.clean; fi; echo "libblobmsg-json" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install.clean; fi; echo "jshn" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install.clean; fi; echo "libjson-script" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubox.default.install
make[2]: Leaving directory `/home/mike/openwrt/package/libs/libubox'
make[2]: Entering directory `/home/mike/openwrt/package/system/ubus'
echo '2015-12-09' | cmp -s - /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubus.version || echo '2015-12-09' > /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/libubus.version
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubus.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubus.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubus.default.install.clean; fi; echo "libubus" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubus.default.install
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubus.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubus.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubus.default.install.clean; fi; echo "ubus" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubus.default.install
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubus.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubus.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubus.default.install.clean; fi; echo "ubusd" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubus.default.install
make[2]: Leaving directory `/home/mike/openwrt/package/system/ubus'
make[2]: Entering directory `/home/mike/openwrt/package/system/uci'
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/uci.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/uci.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/uci.default.install.clean; fi; echo "uci" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/uci.default.install
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/uci.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/uci.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/uci.default.install.clean; fi; echo "libuci" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/uci.default.install
make[2]: Leaving directory `/home/mike/openwrt/package/system/uci'
make[2]: Entering directory `/home/mike/openwrt/package/network/config/netifd'
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/netifd.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/netifd.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/netifd.default.install.clean; fi; echo "netifd" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/netifd.default.install
make[2]: Leaving directory `/home/mike/openwrt/package/network/config/netifd'
make[2]: Entering directory `/home/mike/openwrt/package/system/ubox'
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubox.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubox.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubox.default.install.clean; fi; echo "ubox" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ubox.default.install
make[2]: Leaving directory `/home/mike/openwrt/package/system/ubox'
make[2]: Entering directory `/home/mike/openwrt/package/system/fstools'
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/fstools.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/fstools.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/fstools.default.install.clean; fi; echo "fstools" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/fstools.default.install
make[2]: Leaving directory `/home/mike/openwrt/package/system/fstools'
make[2]: Entering directory `/home/mike/openwrt/package/libs/lzo'
make[2]: Leaving directory `/home/mike/openwrt/package/libs/lzo'
make[2]: Entering directory `/home/mike/openwrt/package/libs/zlib'
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/zlib.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/zlib.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/zlib.default.install.clean; fi; echo "zlib" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/zlib.default.install
make[2]: Leaving directory `/home/mike/openwrt/package/libs/zlib'
make[2]: Entering directory `/home/mike/openwrt/package/libs/ncurses'
make[2]: Leaving directory `/home/mike/openwrt/package/libs/ncurses'
make[2]: Entering directory `/home/mike/openwrt/package/libs/ncurses'
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install.clean; fi; echo "terminfo" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install.clean; fi; echo "libncurses" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install
make[2]: Leaving directory `/home/mike/openwrt/package/libs/ncurses'
make[2]: Entering directory `/home/mike/openwrt/package/libs/ncurses'
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install.clean; fi; echo "terminfo" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install.clean; fi; echo "libncurses" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/ncurses.libncurses.install
make[2]: Leaving directory `/home/mike/openwrt/package/libs/ncurses'
make[2]: Entering directory `/home/mike/openwrt/package/utils/util-linux'
make[2]: Leaving directory `/home/mike/openwrt/package/utils/util-linux'
make[2]: Entering directory `/home/mike/openwrt/package/utils/ubi-utils'
make[2]: Leaving directory `/home/mike/openwrt/package/utils/ubi-utils'
make[2]: Entering directory `/home/mike/openwrt/package/system/procd'
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/procd.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/procd.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/procd.default.install.clean; fi; echo "procd" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/procd.default.install
make[2]: Leaving directory `/home/mike/openwrt/package/system/procd'
make[2]: Entering directory `/home/mike/openwrt/package/system/usign'
make[2]: Leaving directory `/home/mike/openwrt/package/system/usign'
make[2]: Entering directory `/home/mike/openwrt/package/utils/jsonfilter'
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/jsonfilter.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/jsonfilter.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/jsonfilter.default.install.clean; fi; echo "jsonfilter" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/jsonfilter.default.install
make[2]: Leaving directory `/home/mike/openwrt/package/utils/jsonfilter'
make[2]: Entering directory `/home/mike/openwrt/package/system/usign'
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/usign.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/usign.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/usign.default.install.clean; fi; echo "usign" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/usign.default.install
make[2]: Leaving directory `/home/mike/openwrt/package/system/usign'
make[2]: Entering directory `/home/mike/openwrt/package/base-files'
if [ -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/base-files.default.install.clean ]; then rm -f /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/base-files.default.install /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/base-files.default.install.clean; fi; echo "base-files" >> /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo/base-files.default.install
make[2]: Leaving directory `/home/mike/openwrt/package/base-files'
make[2]: Entering directory `/home/mike/openwrt/package/basestation'
mkdir -p /home/mike/openwrt/bin/x86/packages /home/mike/openwrt/build_dir/target-i386_i486_musl-1.1.11/basestation/ipkg-x86/basestation/CONTROL /home/mike/openwrt/staging_dir/target-i386_i486_musl-1.1.11/pkginfo
install -d -m0755 /home/mike/openwrt/build_dir/target-i386_i486_musl-1.1.11/basestation/ipkg-x86/basestation/bin
install -m0755 /home/mike/openwrt/build_dir/target-i386_i486_musl-1.1.11/basestation/tests/moduleTests/moduleTests_run /home/mike/openwrt/build_dir/target-i386_i486_musl-1.1.11/basestation/ipkg-x86/basestation/bin/
find /home/mike/openwrt/build_dir/target-i386_i486_musl-1.1.11/basestation/ipkg-x86/basestation -name 'CVS' -o -name '.svn' -o -name '.#*' -o -name '*~'| xargs -r rm -rf
Package basestation is missing dependencies for the following libraries:
libc.so.6
libm.so.6
libpthread.so.0
make[2]: *** [/home/mike/openwrt/bin/x86/packages/base/basestation_1_x86.ipk] Error 1
make[2]: Leaving directory `/home/mike/openwrt/package/basestation'
make[1]: *** [package/basestation/compile] Error 2
make[1]: Leaving directory `/home/mike/openwrt'
make: *** [package/compile] Error 2
]0;root@jauja: ~/openwrtroot@jauja:~/openwrt# exit
exit