# Set default arch/build.  A default version is not needed since
# package versions are determined by their source tarball.

[ -z $BUILD ] && export BUILD=1
[ -z $TAG ] && export TAG=_gfs

# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
  case "$(uname -m)" in
    i?86) ARCH=i586 ;;
    arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
    # Unless $ARCH is already set, use uname -m for all other archs:
    *) ARCH=$(uname -m) ;;
  esac
  export ARCH
fi

[ -z $PKGARCH ] && export PKGARCH=$ARCH

# Use this as CFLAGS and CXXFLAGS:
if [ -z "$SLKCFLAGS" ]; then
  if [ "$ARCH" = "i486" ]; then
    export SLKCFLAGS="-O2 -march=i486 -mtune=i686"
    export LIBDIRSUFFIX=""
    export CARGOTARGET="--target i486-unknown-linux-gnu"
    export KVMARCH="i386"
  elif [ "$ARCH" = "i586" ]; then
    export SLKCFLAGS="-O2 -march=i586 -mtune=i686"
    export LIBDIRSUFFIX=""
    export CARGOTARGET="--target i586-unknown-linux-gnu"
    export KVMARCH="i386"
  elif [ "$ARCH" = "s390" ]; then
    export SLKCFLAGS="-O2"
    export LIBDIRSUFFIX=""
  elif [ "$ARCH" = "x86_64" ]; then
    export SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
    export LIBDIRSUFFIX="64"
    export CARGOTARGET="--target x86_64-unknown-linux-gnu"
    export KVMARCH="x86_64"
  elif [ "$ARCH" = "aarch64" ]; then
    export SLKCFLAGS="-O2 -march=armv8-a -mtune=generic -fPIC"
    export LIBDIRSUFFIX="64"
    export CARGOTARGET="--target aarch64-unknown-linux-gnu"
    export KVMARCH="aarch64"
  elif [ "$ARCH" = "arm" ]; then
    export SLKCFLAGS="-O2 -march=armv4 -mtune=xscale"
    export LIBDIRSUFFIX=""
  elif [ "$ARCH" = "armel" ]; then
    export SLKCFLAGS="-O2 -march=armv4t"
    export LIBDIRSUFFIX=""
  elif [ "$ARCH" = "armv7hl" ]; then
    export SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
    export LIBDIRSUFFIX=""
  else
    export SLKCFLAGS="-O2"
    export LIBDIRSUFFIX=""
    export CARGOTARGET=""
  fi
fi

# Use this to set the number of parallel make jobs:
NUMJOBS=${NUMJOBS:-" -j $(expr $(nproc) + 1) "}
export NUMJOBS

# Additional cmake flags that are spanned across the KDE modules
# Do not use "final build" unless we build an actual release.
export GNOME_OPT_ARGS=" \
 "

export GNOME_CMAKE_OPT_ARGS=(
   -DCMAKE_POLICY_VERSION_MINIMUM=3.5
)

# Gnome cmake specific flags:
export GNOME_CMAKE_ARGS=(
  "-DCMAKE_C_FLAGS:STRING=$SLKCFLAGS"
  "-DCMAKE_C_FLAGS_RELEASE:STRING=$SLKCFLAGS"
  "-DCMAKE_CXX_FLAGS:STRING=$SLKCFLAGS"
  "-DCMAKE_CXX_FLAGS_RELEASE:STRING=$SLKCFLAGS"
   -DCMAKE_BUILD_TYPE=Release
   -DCMAKE_INSTALL_PREFIX=/usr
   -DCMAKE_INSTALL_LIBDIR:PATH=lib${LIBDIRSUFFIX}
   -DCMAKE_INSTALL_BINDIR:PATH=/usr/bin
   -DSYSCONF_INSTALL_DIR=/etc
   -DLIB_SUFFIX=${LIBDIRSUFFIX}
   -DLIBEXEC_INSTALL_DIR=/usr/libexec
   -DBUILD_SHARED_LIBS:BOOL=ON
   -Wno-dev
)

# Double-quoting required because $SLKCFLAGS contains spaces:
export GNOME_BUILD_ARGS=(
    --buildtype=release
    --infodir=/usr/info
    --libdir=/usr/lib${LIBDIRSUFFIX}
    --libexecdir=/usr/libexec
    --datadir=/usr/share
    --bindir=/usr/bin
    --sbindir=/usr/sbin
    --includedir=/usr/include
    --localstatedir=/var
    --mandir=/usr/man
    --prefix=/usr
    --sysconfdir=/etc
    -Ddefault_library=shared
    -Dstrip=true
 )

# Double-quoting required because $SLKCFLAGS contains spaces:
export GNOME_MAKE_ARGS=(
  --prefix=/usr
  --libdir=/usr/lib${LIBDIRSUFFIX}
  --sysconfdir=/etc
  --localstatedir=/var
  --mandir=/usr/man
  --disable-static
  --build=$ARCH-slackware-linux
 )
