<<<<<<< HEAD
#!/usr/bin/env bash
if [ "$1" = "force" ] ; then
rm -f config.mk
fi
contains_flag () {
if [ -f config.mk ]; then
grep -E "^$1 := " config.mk &>/dev/null;
return $?;
fi
return 1;
}
if [ `uname` == "Darwin" ] ; then
IS_OSX=true
if [ -f /usr/bin/make ] ; then
XCODE_COMMAND_TOOLS_INSTALLED=true
fi
echo "Using currently selected Xcode at the following path: $(xcode-select --print-path)"
echo "(Use xcode-select to change)"
echo ""
if contains_flag XCODE_SDK; then
XCODE_SDK=`grep -oE 'XCODE_SDK := [^#]+' config.mk | cut -b14-`
else
SDK_ARRAY=( $(xcodebuild -showsdks | awk '{ if ($0 ~ /-sdk/) print $NF }' | sort) )
echo " Select Xcode SDK you wish to use:"
select SDK_CHOICE in ${SDK_ARRAY[@]}; do
if [ $SDK_CHOICE ] ; then
XCODE_SDK=$SDK_CHOICE
break;
fi
done
echo "XCODE_SDK := $SDK_CHOICE" >> config.mk
fi
if contains_flag ARCH; then
ARCH=`grep -oE 'ARCH := [^#]+' config.mk | cut -b9-`
else
DEFAULT_ARCH=$(uname -m)
if [[ $XCODE_SDK == iphoneos* ]] ; then
DEFAULT_ARCH='armv7s'
fi
echo -ne " Default architecture: \033[4m$DEFAULT_ARCH\033[m [Y/n] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[nN]* ) read -p " Your architecture: " CC
;;
* ) ARCH=$DEFAULT_ARCH
;;
esac
echo "ARCH := $ARCH" >> config.mk
fi
fi
if contains_flag CC; then
CC=`grep -oE 'CC := [^#]+' config.mk | cut -b7-`
else
DEFAULT_CC='clang'
if [[ $IS_OSX && ! $XCODE_COMMAND_TOOLS_INSTALLED ]] ; then
DEFAULT_CC="xcrun $DEFAULT_CC"
fi
echo -ne " Default compiler: \033[4m$DEFAULT_CC\033[m [Y/n] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[nN]* ) read -p " Your favorite compiler: " CC
;;
* ) CC=$DEFAULT_CC
;;
esac
echo "CC := $CC" >> config.mk
fi
if contains_flag AR; then
CC=`grep -oE 'AR := [^#]+' config.mk | cut -b7-`
else
DEFAULT_AR='ar'
if [[ $IS_OSX && ! $XCODE_COMMAND_TOOLS_INSTALLED ]] ; then
DEFAULT_AR="xcrun $DEFAULT_AR"
fi
echo -ne " Default archiver: \033[4m$DEFAULT_AR\033[m [Y/n] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[nN]* ) read -p " Your favorite archiver: " AR
;;
* ) AR=$DEFAULT_AR
;;
esac
echo "AR := $AR" >> config.mk
fi
if contains_flag CFLAGS && contains_flag LDFLAGS; then
CFLAGS=`grep -oE 'CFLAGS := [^#]+' config.mk | cut -b11-`
LDFLAGS=`grep -oE 'LDFLAGS := [^#]+' config.mk | cut -b12-`
else
CFLAGS=""
LDFLAGS="-lm "
if [[ $ARCH ]] ; then
CFLAGS="$CFLAGS-arch $ARCH "
LDFLAGS="$LDFLAGS-arch $ARCH "
fi
if [[ $IS_OSX ]] ; then
XCODE_SDK_PATH=$(xcodebuild -version -sdk $XCODE_SDK Path)
CFLAGS="$CFLAGS-isysroot $XCODE_SDK_PATH "
LDFLAGS="$LDFLAGS-isysroot $XCODE_SDK_PATH "
fi
if [[ $ARCH != arm* ]] ; then
echo -ne " Enable \033[4mSSE2\033[m [Y/n] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[nN]* ) ;;
* ) CFLAGS="$CFLAGS-msse2 -D HAVE_SSE2 "
;;
esac
fi
echo -ne " With \033[4mlibjpeg\033[m [Y/n] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[nN]* ) ;;
* ) CFLAGS="$CFLAGS-D HAVE_LIBJPEG "
LDFLAGS="$LDFLAGS-ljpeg "
;;
esac
echo -ne " With \033[4mlibpng\033[m [Y/n] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[nN]* ) ;;
* ) CFLAGS="$CFLAGS-D HAVE_LIBPNG "
LDFLAGS="$LDFLAGS-lpng -lz "
if [[ $IS_OSX ]] ; then
CFLAGS="$CFLAGS-I/usr/X11/include "
LDFLAGS="$LDFLAGS-L/usr/X11/lib "
fi
;;
esac
echo -ne " With \033[4mgsl\033[m [Y/n] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[nN]* ) ;;
* ) CFLAGS="$CFLAGS-D HAVE_GSL "
LDFLAGS="$LDFLAGS-lgsl "
;;
esac
echo -ne " With \033[4mfftw3\033[m [Y/n] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[nN]* ) ;;
* ) CFLAGS="$CFLAGS-D HAVE_FFTW3 "
LDFLAGS="$LDFLAGS-lfftw3f -lfftw3 "
;;
esac
echo -ne " With \033[4mliblinear\033[m [Y/n] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[nN]* ) ;;
* ) CFLAGS="$CFLAGS-D HAVE_LIBLINEAR "
LDFLAGS="$LDFLAGS-llinear "
;;
esac
if [[ $IS_OSX ]] ; then
echo -ne " With \033[4mAccelerate Framework\033[m [Y/n] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[nN]* ) ;;
* ) CFLAGS="$CFLAGS-D HAVE_ACCELERATE_FRAMEWORK "
LDFLAGS="$LDFLAGS-framework Accelerate "
;;
esac
else
echo -ne " With \033[4mcblas\033[m [Y/n] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[nN]* ) ;;
* ) CFLAGS="$CFLAGS-D HAVE_CBLAS "
LDFLAGS="$LDFLAGS-lcblas "
;;
esac
fi
echo -ne " Use \033[4mopenmp\033[m [y/N] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[yY]* ) CFLAGS="$CFLAGS-D USE_OPENMP -fopenmp "
LDFLAGS="$LDFLAGS-lgomp "
;;
* ) ;;
esac
echo -ne " Use \033[4mlibdispatch\033[m [y/N] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[yY]* ) CFLAGS="$CFLAGS-D USE_DISPATCH -fblocks "
LDFLAGS="$LDFLAGS-ldispatch -lBlocksRuntime "
;;
* ) ;;
esac
echo -ne " Run \033[4msanity assertion\033[m along side [y/N] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[yY]* ) CFLAGS="$CFLAGS-D USE_SANITY_ASSERTION "
;;
* ) ;;
esac
echo -ne " With \033[4mavcodec\033[m [y/N] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[yY]* ) CFLAGS="$CFLAGS-D HAVE_AVCODEC "
LDFLAGS="$LDFLAGS-lavcodec "
;;
* ) ;;
esac
echo -ne " With \033[4mavformat\033[m [y/N] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[yY]* ) CFLAGS="$CFLAGS-D HAVE_AVFORMAT "
LDFLAGS="$LDFLAGS-lavformat "
;;
* ) ;;
esac
echo -ne " With \033[4mswscale\033[m [y/N] ? "
read -n 1 yn ; if [ ! -z $yn ] ; then echo ; fi
case $yn in
[yY]* ) CFLAGS="$CFLAGS-D HAVE_SWSCALE "
LDFLAGS="$LDFLAGS-lswscale "
;;
* ) ;;
esac
echo "CFLAGS := $CFLAGS" >> config.mk
echo "LDFLAGS := $LDFLAGS" >> config.mk
fi
CFLAGS="${CFLAGS#"${CFLAGS%%[![:space:]]*}"}" # remove leading whitespaces
CFLAGS="${CFLAGS%"${CFLAGS##*[![:space:]]}"}" # remove trailing whitespaces
LDFLAGS="${LDFLAGS#"${LDFLAGS%%[![:space:]]*}"}"
LDFLAGS="${LDFLAGS%"${LDFLAGS##*[![:space:]]}"}"
echo -e "\n \033[1mUSE\033[m: \033[4m$CC\033[m\n \033[1mCOMPILE FLAGS\033[m: \033[4m$CFLAGS\033[m\n \033[1mLINK FLAGS\033[m: \033[4m$LDFLAGS\033[m\n"
=======
#!/usr/bin/env sh
if [ "$1" = "force" ] ; then
rm -f .cc.conf .def.conf .l.conf
fi
if [ -e .cc.conf ] ; then
CC=`cat .cc.conf`
else
read -p "default compiler: clang [Y/n] ? " yn
case $yn in
[nN]* ) read -p "your favorite compiler: " CC
break;;
* ) CC='clang'
break;;
esac
echo $CC > .cc.conf
fi
if [ -e .def.conf -a -e .l.conf ] ; then
CFLAGS=`cat .def.conf`
LDFLAGS=`cat .l.conf`
else
CFLAGS=""
LDFLAGS=""
read -p "with SSE2 [Y/n] ? " yn
case $yn in
[nN]* ) break;;
* ) CFLAGS="$CFLAGS-msse2 "
break;;
esac
read -p "with libjpeg [Y/n] ? " yn
case $yn in
[nN]* ) break;;
* ) CFLAGS="$CFLAGS-D HAVE_LIBJPEG "
LDFLAGS="$LDFLAGS-ljpeg "
break;;
esac
read -p "with libpng [Y/n] ? " yn
case $yn in
[nN]* ) break;;
* ) CFLAG="$CFLAGS-D HAVE_LIBPNG "
LDFLAGS="$LDFLAGS-lpng -lz "
break;;
esac
read -p "with gsl [Y/n] ? " yn
case $yn in
[nN]* ) break;;
* ) CFLAGS="$CFLAGS-D HAVE_GSL "
LDFLAGS="$LDFLAGS-lgsl "
break;;
esac
read -p "with fftw3 [Y/n] ? " yn
case $yn in
[nN]* ) break;;
* ) CFLAGS="$CFLAGS-D HAVE_FFTW3 "
LDFLAGS="$LDFLAGS-lfftw3f -lfftw3 "
break;;
esac
read -p "with liblinear [Y/n] ? " yn
case $yn in
[nN]* ) break;;
* ) CFLAGS="$CFLAGS-D HAVE_LIBLINEAR "
LDFLAGS="$LDFLAGS-llinear "
break;;
esac
read -p "with cblas [Y/n] ? " yn
case $yn in
[nN]* ) break;;
* ) CFLAGS="$CFLAGS-D HAVE_CBLAS "
LDFLAGS="$LDFLAGS-lblas "
break;;
esac
read -p "use openmp [y/N] ? " yn
case $yn in
[yY]* ) CFLAGS="$CFLAGS-D USE_OPENMP -fopenmp "
LDFLAGS="$LDFLAGS-lgomp "
break;;
* ) break;;
esac
echo $CFLAGS > .def.conf
echo $LDFLAGS > .l.conf
fi
echo "\nsummary:\nuse: $CC\nwith following compile flags:\n$CFLAGS\nand link flags:\n$LDFLAGS\n"
>>>>>>> added a simple config script