Skip to content
Snippets Groups Projects
configure 4.74 KiB
Newer Older
  • Learn to ignore specific revisions
  • Eric Vidal's avatar
    Eric Vidal committed
    #!/bin/sh
    
    . package/info
    
    usage () {
    cat <<EOF
    Usage: $0 [OPTION]... [TARGET]
    
    Defaults for the options are specified in brackets.
    
    Installation directories:
      --prefix=PREFIX                  main installation prefix [/]
      --exec-prefix=EPREFIX            installation prefix for executable files [PREFIX]
    
    Fine tuning of the installation directories:
      --bindir=BINDIR                  user executables [EPREFIX/bin]
      --datarootdir=DATAROOTDIR        read-only architecture-independent data root [PREFIX/share]
      --with-system-service=DIR        66 service intallation directory [DATAROOTDIR/$package_macro_dir/service]
      --livedir=DIR                    66 default live directory [/run/66]
      --with-user-service-conf=DIR     66 user service configuration directory [.66/conf]
    
    Eric Vidal's avatar
    Eric Vidal committed
    
    
    Eric Vidal's avatar
    Eric Vidal committed
    Fine tunning of scandir configuration:
      --LOGGER=BOOLEAN                 create an associated logger [!yes]
      --USE_ENVIRONMENT=BOOLEAN        Launch the scandir with a environment [!yes]
      --NOTIFY=BOOLEAN                 use notification [!yes]
      --VERBOSITY_LEVEL=BOOLEAN        level of verbosity [!3]
    
      --version=VALUE                  version of the service[0.0.1]
    
    Eric Vidal's avatar
    Eric Vidal committed
    
    
    Eric Vidal's avatar
    Eric Vidal committed
     Use yes or no with lowercase character to set BOOLEAN values.
    
    Eric Vidal's avatar
    Eric Vidal committed
    
    
    Eric Vidal's avatar
    Eric Vidal committed
     Empty value is a commented one and not used at all.
    
     An exclamation mark '!' at the begin of the value unexport the variable
     for the environment after the use. This is avoid to poluate the environment
     with tempory variables. You need to single-quote the options as
     follow:
    	./configure --NOTIFY='!yes'
    
    EOF
    exit 0
    }
    
    # Helper functions
    
    # If your system does not have printf, you can comment this, but it is
    # generally not a good idea to use echo.
    # See http://www.etalabs.net/sh_tricks.html
    echo () {
      IFS=" "
      printf %s\\n "$*"
    }
    
    quote () {
      tr '\n' ' ' <<EOF | grep '^[-[:alnum:]_=,./:]* $' >/dev/null 2>&1 && { echo "$1" ; return 0 ; }
    $1
    EOF
      echo "$1" | sed -e "s/'/'\\\\''/g" -e "1s/^/'/" -e "\$s/\$/'/" -e "s#^'\([-[:alnum:]_,./:]*\)=\(.*\)\$#\1='\2#" -e "s|\*/|* /|g"
    }
    
    fail () {
      echo "$*"
      exit 1
    }
    
    fnmatch () {
      eval "case \"\$2\" in $1) return 0 ;; *) return 1 ;; esac"
    }
    
    cmdexists () {
      type "$1" >/dev/null 2>&1
    }
    
    stripdir () {
      while eval "fnmatch '*/' \"\${$1}\"" ; do
        eval "$1=\${$1%/}"
      done
    }
    
    testval () {
     if test -z ${1}; then
    	return 0 ;
     else
    	return 1 ;
     fi
    }
    
    # Actual script
    
    prefix=
    exec_prefix='$prefix'
    bindir='$exec_prefix/bin'
    datarootdir='$prefix/share'
    service_directory='$datarootdir/$package_macro_dir/service'
    livedir='/run/66'
    service_userconf='.66/conf'
    LOGGER='!yes'
    USE_ENVIRONMENT='!yes'
    NOTIFY='!yes'
    VERBOSITY_LEVEL='!3'
    
    version='0.0.1'
    
    Eric Vidal's avatar
    Eric Vidal committed
    
    for arg ; do
      case "$arg" in
        --help) usage ;;
        --prefix=*) prefix=${arg#*=} ;;
        --exec-prefix=*) exec_prefix=${arg#*=} ;;
        --bindir=*) bindir=${arg#*=} ;;
        --datarootdir=*) datarootdir=${arg#*=} ;;
        --with-system-service=*) service_directory=${arg#*=} ;;
        --livedir=*) livedir=${arg#*=} ;;
        --with-user-service-conf=*) service_userconf=${arg#*=} ;;
        --LOGGER=*) LOGGER=${arg#*=} ;;
        --USE_ENVIRONMENT=*) USE_ENVIRONMENT=${arg#*=} ;;
        --NOTIFY=*) NOTIFY=${arg#*=} ;;
        --VERBOSITY_LEVEL=*) VERBOSITY_LEVEL=${arg#*=} ;;
    
        --version=*) version=${arg#*=} ;;
    
    Eric Vidal's avatar
    Eric Vidal committed
        -* ) echo "$0: unknown option $arg" ;;
        *=*) ;;
        *) target=$arg ;;
      esac
    done
    
    # Add /usr in the default case
    if test -z "$prefix" ; then
      if test "$datarootdir" = '$prefix/share'; then
        datarootdir=/usr/share
      fi
    fi
    
    # Expand installation directories
    stripdir prefix
    for i in exec_prefix bindir datarootdir \
    
    Eric Vidal's avatar
    Eric Vidal committed
    		livedir service_directory; do
    
    Eric Vidal's avatar
    Eric Vidal committed
      eval tmp=\${$i}
      eval $i=$tmp
      stripdir $i
    done
    
    stripdir datarootdir
    
    Eric Vidal's avatar
    Eric Vidal committed
    for i in service_directory; do
    
    Eric Vidal's avatar
    Eric Vidal committed
      eval tmp=\${$i}
      eval $i=$tmp
      stripdir $i
    done
    
    for i in LOGGER USE_ENVIRONMENT NOTIFY VERBOSITY_LEVEL; do
      eval tmp=\${$i}
      if testval $tmp; then
      	eval $i='${i}=\"\\#${i}=\"'
      else
        eval $i='$i=$i=$tmp'
      fi
    done
    
    # Get usable temp filenames
    i=0
    set -C
    while : ; do
      i=$(($i+1))
      tmpc="./tmp-configure-$$-$PPID-$i.c"
      tmpe="./tmp-configure-$$-$PPID-$i.tmp"
      2>|/dev/null > "$tmpc" && break
      2>|/dev/null > "$tmpe" && break
      test "$i" -gt 50 && fail "$0: cannot create temporary files"
    done
    set +C
    trap 'rm -f "$tmpc" "$tmpe"' EXIT ABRT INT QUIT TERM HUP
    
    echo "creating config.mak..."
    cmdline=$(quote "$0")
    for i ; do cmdline="$cmdline $(quote "$i")" ; done
    exec 3>&1 1>config.mak
    cat << EOF
    # This file was generated by:
    # $cmdline
    # Any changes made here will be lost if configure is re-run.
    version := $version
    
    package := $package
    
    Eric Vidal's avatar
    Eric Vidal committed
    prefix := $prefix
    exec_prefix := $exec_prefix
    bindir := $bindir
    datarootdir := $datarootdir
    service_directory := $service_directory
    package_macro_dir := $package_macro_dir
    livedir := $livedir
    service_userconf := $service_userconf
    $LOGGER
    $USE_ENVIRONMENT
    $NOTIFY
    $VERBOSITY_LEVEL
    EOF
    
    exec 1>&3 3>&-
    echo "  ... done."