How to compile native programs for use in openwrt
-------------------------------------------------

1) Install required packages to the host system :

debian,ubuntu : apt install build-essential patch libncurses-dev python3-distutils unzip gawk wget git
fedora: dnf install make patch gcc g++ ncurses-devel git perl

Other packages may be required on your distribution. Look for the errors.

2) Download latest SDK for your target platform from https://downloads.openwrt.org

examples :

curl -o - https://downloads.openwrt.org/releases/23.05.5/targets/x86/64/openwrt-sdk-23.05.5-x86-64_gcc-12.3.0_musl.Linux-x86_64.tar.xz | tar -Jxv
cd openwrt-sdk-23.05.5-x86-64_gcc-12.3.0_musl.Linux-x86_64

curl -o - https://downloads.openwrt.org/snapshots/targets/x86/64/openwrt-sdk-x86-64_gcc-13.3.0_musl.Linux-x86_64.tar.zst | tar --zstd -xv
cd openwrt-sdk-x86-64_gcc-13.3.0_musl.Linux-x86_64

3) Install required libs

./scripts/feeds update base packages
./scripts/feeds install libnetfilter-queue zlib libcap

4) Prepare openwrt package definitions

cp -R /opt/zapret/docs/compile/openwrt/. .
cp -R /opt/zapret/tpws package/zapret/tpws
cp -R /opt/zapret/nfq package/zapret/nfqws
cp -R /opt/zapret/mdig package/zapret/mdig
cp -R /opt/zapret/ip2net package/zapret/ip2net
rm -f package/zapret/tpws/tpws/tpws package/zapret/nfqws/nfq/nfqws package/zapret/mdig/mdig/mdig package/zapret/ip2net/ip2net/ip2net

5) Prepare .config

make defconfig

If you only need bins without packages comment 'CONFIG_AUTOREMOVE=y' line in .config

6) Compile

dynamic build : make package/{tpws,nfqws,mdig,ip2net}/compile
static build :  make CFLAGS=-static package/{tpws,nfqws,mdig,ip2net}/compile

7) Get result

executables only : build_dir/target/<progname>
ipk or apk packages : bin/packages/*/base

8) Installing to openwrt to use with zapret

zapret with or without binaries should be already installed in /opt/zapret.
Install ipk's or apk's with all compiled progs using opkg or apk.
Bins are placed to /opt/zapret/binaries/my.
Or copy binaries there manually and set chmod 755 to them.
Run install_bin.sh or install_easy.sh. They will use bins in 'my' folder.
