#!/bin/bash

ROOT_DIR=~/libnsl #abspath! rootdir will be mentioned in libnsl configuration
SRC_DIR=${ROOT_DIR}/src
BUILD_DIR=${ROOT_DIR}/build
BIN_DIR=${ROOT_DIR}/bin
OUT_DIR=${ROOT_DIR}/output

PATH=$BIN_DIR:$PATH

V_NASM=2.15.05
V_YASM=1.3.0
V_LIBNSL=2.0.1
# prereqs
#sudo yum install -y autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel || exit 1
#sudo yum install -y gettext-devel
mkdir -p $SRC_DIR

# echo "Building assemblers..."
# # nasm
# if [ ! -f "$BIN_DIR/nasm" ]; then
# 	cd $SRC_DIR
# 	if [ ! -d "nasm-${V_NASM}" ]; then
# 		curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/${V_NASM}/nasm-${V_NASM}.tar.bz2 || exit 1
# 		tar xjvf nasm-${V_NASM}.tar.bz2 || exit 2
# 	fi
# 	cd nasm-${V_NASM} 
# 	./autogen.sh && ./configure --prefix="$BUILD_DIR" --bindir="$BIN_DIR" || exit 3
# 	make -j`nproc` && make install || exit 4
# else
# 	echo "NASM: $BIN_DIR/nasm already built, skipping."
# fi
# # yasm
# if [ ! -f "$BIN_DIR/yasm" ]; then
# 	cd $SRC_DIR 
# 	if [ ! -d "yasm-${V_YASM}" ]; then
# 		curl -O -L https://www.tortall.net/projects/yasm/releases/yasm-${V_YASM}.tar.gz || exit 5
# 		tar xzvf yasm-${V_YASM}.tar.gz || exit 6
# 	fi
# 	cd yasm-${V_YASM}
# 	./configure --prefix="${BUILD_DIR}" --bindir="${BIN_DIR}" || exit 7
# 	make -j`nproc` && make install || exit 8
# else
# 	echo "YASM: $BIN_DIR/yasm already built, skipping."
# fi


#### FFmpeg
echo Building libnsl...
cd ${SRC_DIR}
if [ ! -d libnsl-${V_LIBNSL} ]; then
	curl -O -L https://github.com/thkukuk/libnsl/releases/download/v${V_LIBNSL}/libnsl-${V_LIBNSL}.tar.xz || exit 15
	tar xJvf libnsl-${V_LIBNSL}.tar.xz || exit 16
fi
cd libnsl-${V_LIBNSL}

if [ ! -f ./configure ]; then
	./autogen.sh
fi
# make distclean
#PATH!
PKG_CONFIG_PATH="${BUILD_DIR}/lib/pkgconfig" \
CFLAGS="-I${BUILD_DIR}/include" \
LDFLAGS="-L${BUILD_DIR}/lib" \
./configure \
	--prefix="${BUILD_DIR}" \
	--bindir="${BIN_DIR}" \
	--enable-shared \
	|| exit 17

make -j`nproc` || exit 18 #PATH!
make install || exit 19

# if [ ! -f "$OUT_DIR/ffmpeg" ]; then
# 	mkdir -p $OUT_DIR
# 	cd $BUILD_DIR/lib
# 	cp libopenh264.so.7 libvpx.so.9 \
# 		libavcodec.so.60 libavdevice.so.60 \
# 		libavfilter.so.9 libavformat.so.60 \
# 		libavutil.so.58 libswresample.so.4 \
# 		libswscale.so.7 \
# 		$OUT_DIR
# 	cp $BIN_DIR/ffmpeg $OUT_DIR
# fi
# printf "\n=========================================\n\n"
# LD_LIBRARY_PATH=$OUT_DIR $OUT_DIR/ffmpeg -L
# printf "\n=========================================\n\n"
# LD_LIBRARY_PATH=$OUT_DIR $OUT_DIR/ffmpeg -buildconf
# printf "\n=========================================\n\n"
# LD_LIBRARY_PATH=$OUT_DIR ldd $OUT_DIR/ffmpeg