We start with the revision 30610 of svn repository of openwrt
mkdir ~/openwrt
cd ~/openwrt
svn co -r30610 svn://svn.openwrt.org/openwrt/trunk r30610
cd r30610
./scripts/feeds update -a
./scripts/feeds install -a
We have as a requirement to use glibc as the C library of the system (instead of uClibc)
We apply a patch that appears to be needed in order to build with glibc
(https://dev.openwrt.org/ticket/9483#comment:16)
in file: package/base-files/files/lib/upgrade/common.sh
at row: 61
- install_file /etc/resolv.conf /etc/functions.sh /lib/upgrade/*.sh $RAMFS_COPY_DATA
+ install_file /etc/resolv.conf /etc/functions.sh /lib/* /lib/upgrade/*.sh $RAMFS_COPY_DATA
First build, we just select the platform
make menuconfig
(Select Target System (Atheros AR7xxx/AR9xxx) Subtarget (Generic) and Profile (TP-LINK TL-WR1043N/ND)
[*] Advanced configuration options (for developers) --->
[*] Toolchain Options --->
[*] glibc 2.14
make defconfig
make download
time ionice -c 3 nice -n 20 make # WARNING do not use -j 2
(it takes about 3 hours)
Second build, we select the needed packages
make menuconfig
[*] Advanced configuration options (for developers) --->
[*] Toolchain Options --->
[*] Build gdb
[*] Build the OpenWrt SDK
[*] Build the OpenWrt based Toolchain
Base system --->
--- libpthread
<*> librt
Libraries --->
<*> libffi
<*> libgcrypt
--- libgpg-error
<*> libiconv-full
<*> libintl-full
<*> libpcre
<*> zlib
LuCI --->
Collections --->
<M> luci
Network --->
Firewall --->
--- iptables --->
--- iptables-mod-conntrack
<*> iptables-mod-conntrack-extra
<*> iptables-mod-ipopt
--- iptables-mod-nat
Routing and Redirection --->
<*> ip
Kernel modules --->
Netfilter Extensions --->
--- kmod-ipt-core
--- kmod-ipt-conntrack
--- kmod-ipt-conntrack-extra
--- kmod-ipt-ipopt
time ionice -c 3 nice -n 20 make -j 2
(it takes about 32 min) [if the compiler bails here try without the -j 2 option]
time ionice -c 3 nice -n 20 make toolchain/install -j 2
(it takes about 9 min)
We cross-compile the libraries needed by netsukuku: pth, glib, libgee
export NTK_TOOLCHAIN=~/openwrt/r30610/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_glibc-2.14
export NTK_TARGET=~/openwrt/r30610/staging_dir/target-mips_r2_glibc-2.14
export NTK_SDK_HOST=~/openwrt/r30610/build_dir/target-mips_r2_glibc-2.14/OpenWrt-SDK-ar71xx-for-Linux-i686-gcc-4.6-linaro_glibc-2.14/staging_dir/host
export NTK_ROOT=~/openwrt/r30610/build_dir/target-mips_r2_glibc-2.14/root-ar71xx
# set path for executables mips-openwrt-linux-gcc and the like
export PATH=${NTK_TOOLCHAIN}/bin:${PATH}
# The following variable is necessary for this toolchain, it has to be set at configure-time and at make-time
export STAGING_DIR=~/openwrt/r30610/staging_dir
We enter the directory where we unzipped pth-2.0.7
STAGING_PREFIX=~/openwrt/r30610/staging_dir/target-mips_r2_glibc-2.14/usr \
PKG_CONFIG_PATH=${NTK_TARGET}/usr/lib/pkgconfig \
PATH=${NTK_SDK_HOST}/bin:$PATH \
CPPF0="-I${NTK_TARGET}/usr/include" \
CPPF1="" \
CPPF2="" \
CPPFLAGS="-Os $CPPF0 $CPPF1 $CPPF2 $CPPFLAGS" \
CF0="-I${NTK_TARGET}/usr/include" \
CF1="" \
CF2="" \
CFLAGS="-Os $CF0 $CF1 $CF2 $CFLAGS" \
L0="-L${NTK_TARGET}/usr/lib" \
L1="" \
L2="" \
LDFLAGS="-Os $L0 $L1 $L2 $LDFLAGS" \
./configure \
--host=mips-openwrt-linux-gnu \
--prefix=/opt/pth-2.0.7
make &&
make install DESTDIR=~/pre-pkg/mips-glibc
export PKG_INSTALL_DIR=~/pre-pkg/mips-glibc/opt/pth-2.0.7
export FINAL_DIR=~/pkg/mips-glibc/pth-2.0.7
export FINAL_DIR_DEV=~/pkg/mips-glibc/pth-2.0.7-dev
mkdir -p ${FINAL_DIR_DEV}
cp -a ${PKG_INSTALL_DIR}/* ${FINAL_DIR_DEV}
mkdir -p ${FINAL_DIR}/lib
cp -a ${PKG_INSTALL_DIR}/lib/*.so* ${FINAL_DIR}/lib
mips-openwrt-linux-gnu-strip --strip-unneeded `file ${FINAL_DIR}/lib/* | grep ELF | cut -d: -f1`
We enter the directory where we unzipped glib-2.28.8
# apply the patches provided by openwrt
for i in ~/openwrt/r30610/feeds/packages/libs/glib2/patches/*.patch
do cat $i | patch -p1
done
STAGING_PREFIX=~/openwrt/r30610/staging_dir/target-mips_r2_glibc-2.14/usr \
PKG_CONFIG_PATH=${NTK_TARGET}/usr/lib/pkgconfig \
PATH=${NTK_SDK_HOST}/bin:$PATH \
CPPF0="-I${NTK_TARGET}/usr/include" \
CPPF1="-I${NTK_TARGET}/usr/lib/libintl-full/include" \
CPPF2="-I${NTK_TARGET}/usr/lib/libiconv-full/include" \
CPPFLAGS="-Os $CPPF0 $CPPF1 $CPPF2 $CPPFLAGS" \
CF0="-I${NTK_TARGET}/usr/include" \
CF1="-I${NTK_TARGET}/usr/lib/libintl-full/include" \
CF2="-I${NTK_TARGET}/usr/lib/libiconv-full/include" \
CFLAGS="-Os $CF0 $CF1 $CF2 $CFLAGS" \
L0="-L${NTK_TARGET}/usr/lib" \
L1="-L${NTK_TARGET}/usr/lib/libintl-full/lib" \
L2="-L${NTK_TARGET}/usr/lib/libiconv-full/lib" \
LDFLAGS="-Os $L0 $L1 $L2 $LDFLAGS" \
glib_cv_stack_grows=no \
glib_cv_uscore=no \
ac_cv_func_posix_getpwuid_r=yes \
ac_cv_func_posix_getgrgid_r=yes \
./configure \
--host=mips-openwrt-linux-gnu \
--with-libiconv=gnu \
--enable-shared \
--enable-static \
--disable-selinux \
--disable-fam \
--prefix=/opt/glib-2.28.8
make &&
make install DESTDIR=~/pre-pkg/mips-glibc
export PKG_INSTALL_DIR=~/pre-pkg/mips-glibc/opt/glib-2.28.8
export FINAL_DIR=~/pkg/mips-glibc/glib-2.28.8
export FINAL_DIR_DEV=~/pkg/mips-glibc/glib-2.28.8-dev
mkdir -p ${FINAL_DIR_DEV}/include/glib-2.0
cp -a ${PKG_INSTALL_DIR}/include/glib-2.0/* ${FINAL_DIR_DEV}/include
cp -a ${PKG_INSTALL_DIR}/lib/glib-2.0/include/*.h ${FINAL_DIR_DEV}/include/glib-2.0
cp -a ${PKG_INSTALL_DIR}/include/gio-unix-2.0/* ${FINAL_DIR_DEV}/include
mkdir -p ${FINAL_DIR_DEV}/lib
cp -a ${PKG_INSTALL_DIR}/lib/glib-2.0 ${FINAL_DIR_DEV}/lib
cp -a ${PKG_INSTALL_DIR}/lib/*.{so*,a,la} ${FINAL_DIR_DEV}/lib
mkdir -p ${FINAL_DIR_DEV}/lib/pkgconfig
cp -a ${PKG_INSTALL_DIR}/lib/pkgconfig/*.pc ${FINAL_DIR_DEV}/lib/pkgconfig
mkdir -p ${FINAL_DIR_DEV}/share/aclocal
cp -a ${PKG_INSTALL_DIR}/share/aclocal/*.m4 ${FINAL_DIR_DEV}/share/aclocal
mkdir -p ${FINAL_DIR}/lib
cp -a ${PKG_INSTALL_DIR}/lib/*.so* ${FINAL_DIR}/lib
mips-openwrt-linux-gnu-strip --strip-unneeded `file ${FINAL_DIR}/lib/* | grep ELF | cut -d: -f1`
We enter the directory where we unzipped libgee-0.6.1
STAGING_PREFIX=~/openwrt/r30610/staging_dir/target-mips_r2_glibc-2.14/usr \
PKG_CONFIG_PATH=/home/luca/pkg/mips-glibc/glib-2.28.8-dev/lib/pkgconfig:${NTK_TARGET}/usr/lib/pkgconfig \
PATH=${NTK_SDK_HOST}/bin:$PATH \
CPPF0="-I${NTK_TARGET}/usr/include" \
CPPF1="-I/home/luca/pkg/mips-glibc/glib-2.28.8-dev/include" \
CPPF2="-I/home/luca/pkg/mips-glibc/glib-2.28.8-dev/lib/glib-2.0/include" \
CPPFLAGS="-Os $CPPF0 $CPPF1 $CPPF2 $CPPFLAGS" \
CF0="-I${NTK_TARGET}/usr/include" \
CF1="-I/home/luca/pkg/mips-glibc/glib-2.28.8-dev/include" \
CF2="-I/home/luca/pkg/mips-glibc/glib-2.28.8-dev/lib/glib-2.0/include" \
CFLAGS="-Os $CF0 $CF1 $CF2 $CFLAGS" \
L0="-L${NTK_TARGET}/usr/lib" \
L1="-L/home/luca/pkg/mips-glibc/glib-2.28.8-dev/lib" \
L2="" \
LDFLAGS="-Os $L0 $L1 $L2 $LDFLAGS" \
./configure \
--host=mips-openwrt-linux-gnu \
--prefix=/opt/libgee-0.6.1
# We need that glib-2 could be found on the dir where it was configured to be:
sudo ln -s $HOME/pre-pkg/mips-glibc/opt/glib-2.28.8 /opt
make &&
make install DESTDIR=~/pre-pkg/mips-glibc
sudo rm /opt/glib-2.28.8
export PKG_INSTALL_DIR=~/pre-pkg/mips-glibc/opt/libgee-0.6.1
export FINAL_DIR=~/pkg/mips-glibc/libgee-0.6.1
export FINAL_DIR_DEV=~/pkg/mips-glibc/libgee-0.6.1-dev
mkdir -p ${FINAL_DIR_DEV}/include
cp -a ${PKG_INSTALL_DIR}/include/* ${FINAL_DIR_DEV}/include
mkdir -p ${FINAL_DIR_DEV}/lib/pkgconfig
cp -a ${PKG_INSTALL_DIR}/lib/*.{so*,a,la} ${FINAL_DIR_DEV}/lib
cp -a ${PKG_INSTALL_DIR}/lib/pkgconfig/*.pc ${FINAL_DIR_DEV}/lib/pkgconfig
mkdir -p ${FINAL_DIR}/lib
cp -a ${PKG_INSTALL_DIR}/lib/*.so* ${FINAL_DIR}/lib
mips-openwrt-linux-gnu-strip --strip-unneeded `file ${FINAL_DIR}/lib/* | grep ELF | cut -d: -f1`
Back to the directory where we build openwrt. We create a folder
"files" to prepare files that have to be placed in the firmware.
cd ~/openwrt/r30610
mkdir -p files/opt
cp -a ~/pkg/mips-glibc/pth-2.0.7 files/opt/pth-2.0.7
cp -a ~/pkg/mips-glibc/glib-2.28.8 files/opt/glib-2.28.8
cp -a ~/pkg/mips-glibc/libgee-0.6.1 files/opt/libgee-0.6.1
Build again the firmware
time ionice -c 3 nice -n 20 make -j 2
(it takes about 6 min)
We now cross-build netsukuku
export NTK_TOOLCHAIN=${HOME}/openwrt/r30610-full-glibc/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_glibc-2.14
export NTK_TARGET=${HOME}/openwrt/r30610-full-glibc/staging_dir/target-mips_r2_glibc-2.14
export NTK_SDK_HOST=${HOME}/openwrt/r30610-full-glibc/build_dir/target-mips_r2_glibc-2.14/OpenWrt-SDK-ar71xx-for-Linux-i686-gcc-4.6-linaro_glibc-2.14/staging_dir/host
export NTK_ROOT=${HOME}/openwrt/r30610-full-glibc/build_dir/target-mips_r2_glibc-2.14/root-ar71xx
export NTK_NTKD_SRC=${HOME}/savannahnongnu/task
export NTK_GCC='mips-openwrt-linux-gnu-gcc '
export NTK_CFLAGS_GLIB20="-pthread -I${HOME}/pkg/mips-glibc/glib-2.28.8-dev/include -I${HOME}/pkg/mips-glibc/glib-2.28.8-dev/lib/glib-2.0/include -I${NTK_TARGET}/usr/include "
export NTK_LIBS_GLIB20="-Wl,-rpath-link,${NTK_TARGET}/usr/lib/libintl-full/lib -Wl,-rpath-link,${NTK_TARGET}/usr/lib/libiconv-full/lib -Wl,-rpath-link,${NTK_TARGET}/usr/lib -Wl,-rpath-link,${HOME}/pkg/mips-glibc/glib-2.28.8-dev/lib -L${HOME}/pkg/mips-glibc/glib-2.28.8-dev/lib -L${NTK_TARGET}/usr/lib/libintl-full/lib -L${NTK_TARGET}/usr/lib/libiconv-full/lib -L${NTK_TARGET}/usr/lib -pthread -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 "
export NTK_CFLAGS_GEE10="-pthread -I${HOME}/pkg/mips-glibc/libgee-0.6.1-dev/include/gee-1.0 "
export NTK_LIBS_GEE10="-Wl,-rpath-link,${HOME}/pkg/mips-glibc/libgee-0.6.1-dev/lib -L${HOME}/pkg/mips-glibc/libgee-0.6.1-dev/lib -pthread -lgee "
export NTK_CFLAGS_PTH2="-I${HOME}/pkg/mips-glibc/pth-2.0.7-dev/include "
export NTK_LIBS_PTH2="-L${HOME}/pkg/mips-glibc/pth-2.0.7-dev/lib -lpth "
export NTK_CFLAGS_GCRYPT="-I${NTK_TARGET}/usr/include "
export NTK_LIBS_GCRYPT="-L${NTK_TARGET}/usr/lib -lgcrypt -lgpg-error "
export NTK_VALA_DEF='-D linux -D bigendian '
export PATH=${NTK_TOOLCHAIN}/bin:${PATH}
export STAGING_DIR=${HOME}/openwrt/r30610-full-glibc/staging_dir
mkdir build
cd build
ln -s ${NTK_NTKD_SRC}/*.vapi .
ln -s ${NTK_NTKD_SRC}/ntkd.vala
ln -s ${NTK_NTKD_SRC}/ntk_node.vala
ln -s ${NTK_NTKD_SRC}/networkinterfaces.vala
ln -s ${NTK_NTKD_SRC}/networkinterface_manager.vala
ln -s ${NTK_NTKD_SRC}/neighbour.vala
ln -s ${NTK_NTKD_SRC}/radar.vala
ln -s ${NTK_NTKD_SRC}/inet_ends.vala
ln -s ${NTK_NTKD_SRC}/tasklet_blocking_sockets.vala
ln -s ${NTK_NTKD_SRC}/nic_generic.vala
ln -s ${NTK_NTKD_SRC}/route_generic.vala
ln -s ${NTK_NTKD_SRC}/metrics.vala
ln -s ${NTK_NTKD_SRC}/rpc.vala
ln -s ${NTK_NTKD_SRC}/messages.vala
ln -s ${NTK_NTKD_SRC}/remotable_interfaces.vala
ln -s ${NTK_NTKD_SRC}/serializer.vala
ln -s ${NTK_NTKD_SRC}/settings.vala
ln -s ${NTK_NTKD_SRC}/network_linux.vala
ln -s ${NTK_NTKD_SRC}/microfunc.vala
ln -s ${NTK_NTKD_SRC}/addresses.vala
ln -s ${NTK_NTKD_SRC}/krnl_route.vala
ln -s ${NTK_NTKD_SRC}/address_manager.vala
ln -s ${NTK_NTKD_SRC}/auxiliary.vala
ln -s ${NTK_NTKD_SRC}/bnodetunneling.vala
ln -s ${NTK_NTKD_SRC}/rpc_clients.vala
ln -s ${NTK_NTKD_SRC}/tunnel.vala
ln -s ${NTK_NTKD_SRC}/border_nodes.vala
ln -s ${NTK_NTKD_SRC}/migration.vala
ln -s ${NTK_NTKD_SRC}/coord.vala
ln -s ${NTK_NTKD_SRC}/counter.vala
ln -s ${NTK_NTKD_SRC}/andna.vala
ln -s ${NTK_NTKD_SRC}/peer_to_peer.vala
ln -s ${NTK_NTKD_SRC}/qspn.vala
ln -s ${NTK_NTKD_SRC}/aggregated_neighbour.vala
ln -s ${NTK_NTKD_SRC}/maproute.vala
ln -s ${NTK_NTKD_SRC}/incoming_nodes.vala
ln -s ${NTK_NTKD_SRC}/hook.vala
ln -s ${NTK_NTKD_SRC}/networkid.vala
ln -s ${NTK_NTKD_SRC}/crypto.vala
ln -s ${NTK_NTKD_SRC}/inet_utils.vala
ln -s ${NTK_NTKD_SRC}/map.vala
ln -s ${NTK_NTKD_SRC}/topology.vala
ln -s ${NTK_NTKD_SRC}/tasklet.vala
ln -s ${NTK_NTKD_SRC}/channel.vala
ln -s ${NTK_NTKD_SRC}/time_utils.vala
ln -s ${NTK_NTKD_SRC}/logger.vala
ln -s ${NTK_NTKD_SRC}/libwrappth.vala
ln -s ${NTK_NTKD_SRC}/use_with_libpth_vapi.vala
valac ${NTK_VALA_DEF} -D log_tasklet -C --main=Ntk.Core.Ntkd.main \
ntkd.vala \
ntk_node.vala \
networkinterfaces.vala \
networkinterface_manager.vala \
neighbour.vala \
radar.vala \
inet_ends.vala \
tasklet_blocking_sockets.vala \
nic_generic.vala \
route_generic.vala \
metrics.vala \
rpc.vala \
messages.vala \
remotable_interfaces.vala \
serializer.vala \
settings.vala \
network_linux.vala \
microfunc.vala \
addresses.vala \
address_manager.vala \
auxiliary.vala \
bnodetunneling.vala \
krnl_route.vala \
rpc_clients.vala \
tunnel.vala \
border_nodes.vala \
migration.vala \
coord.vala \
counter.vala \
andna.vala \
peer_to_peer.vala \
qspn.vala \
aggregated_neighbour.vala \
maproute.vala \
incoming_nodes.vala \
hook.vala \
networkid.vala \
crypto.vala \
inet_utils.vala \
map.vala \
topology.vala \
tasklet.vala \
channel.vala \
time_utils.vala \
logger.vala \
libwrappth.vala \
use_with_libpth_vapi.vala \
--pkg gcrypt \
--pkg gee-1.0 --pkg gio-2.0 --pkg posix --pkg posix_extras --pkg linux --pkg libpth --vapidir .
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c ntkd.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c ntk_node.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c networkinterfaces.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c networkinterface_manager.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c neighbour.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c radar.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c inet_ends.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c tasklet_blocking_sockets.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c nic_generic.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c route_generic.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c metrics.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c rpc.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c messages.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c remotable_interfaces.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c serializer.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c settings.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c network_linux.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c microfunc.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c addresses.c
${NTK_GCC} ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c address_manager.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c auxiliary.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c bnodetunneling.c
${NTK_GCC} ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c krnl_route.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c rpc_clients.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c tunnel.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c border_nodes.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c migration.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c coord.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c counter.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c andna.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c peer_to_peer.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c qspn.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c aggregated_neighbour.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c maproute.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c incoming_nodes.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c hook.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c networkid.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c crypto.c
${NTK_GCC} ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c inet_utils.c
${NTK_GCC} ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c map.c
${NTK_GCC} ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c topology.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c tasklet.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c channel.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c time_utils.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c logger.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c libwrappth.c
${NTK_GCC} -Os ${NTK_CFLAGS_GLIB20} ${NTK_CFLAGS_GEE10} ${NTK_CFLAGS_PTH2} ${NTK_CFLAGS_GCRYPT} -c use_with_libpth_vapi.c
${NTK_GCC} -Os -o ntkd -Wl,-z,origin,-rpath,\$ORIGIN \
ntkd.o \
ntk_node.o \
networkinterfaces.o \
networkinterface_manager.o \
neighbour.o \
radar.o \
inet_ends.o \
tasklet_blocking_sockets.o \
nic_generic.o \
route_generic.o \
metrics.o \
rpc.o \
messages.o \
remotable_interfaces.o \
serializer.o \
settings.o \
network_linux.o \
microfunc.o \
addresses.o \
address_manager.o \
auxiliary.o \
bnodetunneling.o \
krnl_route.o \
rpc_clients.o \
tunnel.o \
border_nodes.o \
migration.o \
coord.o \
counter.o \
andna.o \
peer_to_peer.o \
qspn.o \
aggregated_neighbour.o \
maproute.o \
incoming_nodes.o \
hook.o \
networkid.o \
crypto.o \
inet_utils.o \
map.o \
topology.o \
tasklet.o \
channel.o \
time_utils.o \
logger.o \
libwrappth.o \
use_with_libpth_vapi.o \
-lm \
${NTK_LIBS_GLIB20} \
${NTK_LIBS_GEE10} \
${NTK_LIBS_PTH2} \
${NTK_LIBS_GCRYPT}
rm -f *.vapi *.vala *.c *.o