#! /bin/sh
#
# $Id$
#
# Copyright 2011-2014, 2026, Juniper Networks, Inc.
# All rights reserved.
# This SOFTWARE is licensed under the LICENSE provided in the
# ../Copyright file. By downloading, installing, copying, or otherwise
# using the SOFTWARE, you agree to be bound by the terms of that
# LICENSE.
#

prefix="/usr"
exec_prefix="${prefix}"
includedir="${prefix}/include"
libdir="${exec_prefix}/lib"

XO_BINDIR="${exec_prefix}/bin"
XO_LIBDIR="/usr/lib"
XO_INCLUDEDIR="${prefix}/include"
XO_SHAREDIR="/usr/share/libxo"
XO_ENCODERDIR="${exec_prefix}/lib/libxo/encoder"
XO_FILTERDIR="${exec_prefix}/lib/libxo"
XO_LLVMDIR="/usr/lib/libxo"

XO_SDK_PATH=""
XO_LLVM_CLANG=""
XO_LLVM_CONFIG="no"

XO_GETTEXT_CFLAGS=""
XO_GETTEXT_LIBS=""
XO_GETTEXT_LIBDIR="none/lib"
XO_GETTEXT_BINDIR=""

LIBXO_VERSION=""2.1.0"
LIBXO_VERSION_EXTRA="""
LIBXO_NEED_FILTERS="no"

# Note these are repeated in xocc.sh.in
XO_SDK_OPTIONS=${XO_SDK_PATH:+-isysroot ${XO_SDK_PATH}}

XO_VALIDATE_OPTS="\
-fplugin=${XO_LLVMDIR}/xo_validate.so \
-mllvm -xo-validate-errors-as-warnings \
"

XO_PRECOMPILE_OPTS="\
-fpass-plugin=${XO_LLVMDIR}/xo_precompile.so \
"

XO_LIBS="-lxo ${XO_GETTEXT_LIBS}"

usage()
{
    cat <<EOF
Usage: libxo-config [OPTION]

Known values for OPTION are:

  --bindir              libxo XO_BINDIR value
  --cflags		print pre-processor and compiler flags
  --encoderdir          libxo XO_ENCODERDIR value
  --filterdir           libxo XO_FILTERDIR value
  --filters             libxo LIBXO_NEED_FILTERS value
  --gettext-bindir      libxo XO_GETTEXT_BINDIR value
  --gettext-cflags      libxo XO_GETTEXT_CFLAGS value
  --gettext-libdir      libxo XO_GETTEXT_LIBDIR value
  --gettext-libs        libxo XO_GETTEXT_LIBS value
  --help		display this help and exit
  --includedir          libxo XO_INCLUDEDIR value
  --libdir              libxo XO_LIBDIR value
  --libs		print library linking information
  --llvm-cflags         compiler cflags for validate and precompile plugins
  --llvm-cflags-precompile compiler cflags for precompile plugins
  --llvm-cflags-validate compiler cflags for validate plugins
  --llvm-clang          libxo LLVM_CLANG value
  --llvm-config         libxo LLVM_CONFIG value
  --llvmdir             libxo XO_LLVMDIR value
  --sdk-cflags          compile flags (if any) needed by the sdk (MacOS)
  --sdk-path            libxo SDK_PATH value
  --share		print share directory
  --sharedir            libxo XOSHAREDIR value
  --version		output version information

EOF

    exit $1
}

if test $# -eq 0; then
    usage 1
fi

cflags=false
libs=false

while test $# -gt 0; do
    case "$1" in
    --prefix)
	echo $prefix
	;;

    --exec-prefix)
	echo $exec_prefix
	;;

    --version)
	echo 2.1.0
	;;

    --help)
	usage 0
	;;

    --cflags)
       	echo -I${prefix}/include -D_GNU_SOURCE -Os -fstack-clash-protection -Wformat -Werror=format-security
       	;;

    --libs|--ldflags)
        if [ "`uname`" = "Linux" ]
	then
	    if [ "/usr/lib" = "-L/usr/lib" -o "/usr/lib" = "-L/usr/lib64" ]
	    then
		echo -lxo 
	    else
		echo -L/usr/lib -lxo 
	    fi
	else
	    echo -L/usr/lib -lxo
	fi
       	;;

    --bindir)
	echo ${XO_BINDIR}
	;;

    --libdir)
	echo ${XO_LIBDIR}
	;;

    --includedir)
	echo ${XO_INCLUDEDIR}
	;;

    --sharedir|--share)
	echo ${XO_SHAREDIR}
	;;

    --encoderdir)
	echo ${XO_ENCODERDIR}
	;;

    --filterdir)
	echo ${XO_FILTERDIR}
	;;

    --llvmdir)
	echo ${XO_LLVMDIR}
	;;

    --sdk-cflags|--sdk_cflags)
	echo ${XO_SDK_OPTIONS}
	;;

    --sdk-path|--sdk_path)
	echo ${XO_SDK_PATH}
	;;

    --llvm-cflags|--llvm_cflags)
	echo ${XO_VALIDATE_OPTS} ${XO_PRECOMPILE_OPTS}
	;;

    --llvm-cflags-precompile|--llvm_cflags_precompile)
	echo ${XO_PRECOMPILE_OPTS}
	;;

    --llvm-cflags-validate|--llvm_cflags_validate)
	echo ${XO_PRECOMPILE_OPTS}
	;;

    --llvm-clang|--llvm_clang)
	echo ${XO_LLVM_CLANG}
	;;

    --llvm-config|--llvm_config)
	echo ${XO_LLVM_CONFIG}
	;;

    --gettext-cflags|--gettext_cflags)
	echo ${XO_GETTEXT_CFLAGS}
	;;

    --gettext-libs|--gettext_libs)
	echo ${XO_GETTEXT_LIBS}
	;;

    --gettext-libdir|--gettext_libdir)
	echo ${XO_GETTEXT_LIBDIR}
	;;

    --gettext-bindir|--gettext_bindir)
	echo ${XO_GETTEXT_BINDIR}
	;;

    --filters)
	echo ${LIBXO_NEED_FILTERS}
	;;

    *)
	usage
	exit 1
	;;
    esac
    shift
done

exit 0
