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