(file) Return to configure CVS log (file) (dir) Up to [OMI] / omi

File: [OMI] / omi / configure (download)
Revision: 1.2, Fri Jun 15 19:51:14 2012 UTC (11 years, 11 months ago) by mike
Branch: MAIN
CVS Tags: OMI_1_0_1
Changes since 1.1: +20 -6 lines
OMI 1.0.1

#!/bin/sh

##==============================================================================
##
## Product, Version, and Bilddate information:
##
##==============================================================================

product="OMI"
fullproduct="Open Management Infrastructure"
major=1
minor=0
revision=1
date=`date`
version="$major.$minor.$revision"

##==============================================================================
##
## CIM Schema version
##
##==============================================================================

cimschema="CIM-2.32.0"

##==============================================================================
##
## Get command line options that start with slash.
##
##==============================================================================

for opt
do

  arg=`expr "x$opt" : 'x[^=]*=\(.*\)'`

  case $opt in

    -h | --help)
      help=1
      ;;

    --enable-debug)
      enable_debug=1
      ;;

    --disable-rtti)
      disable_rtti=1
      ;;

    --disable-templates)
      disable_templates=1
      ;;

    --target=*)
      target=$arg
      ;;

    --toolchain=*)
      toolchain=$arg
      ;;

    --prefix=*)
      prefix=$arg 
      ;;

    --bindir=*)
      bindir=$arg 
      ;;

    --libdir=*)
      libdir=$arg 
      ;;

    --includedir=*)
      includedir=$arg 
      ;;

    --datadir=*)
      datadir=$arg 
      ;;

    --localstatedir=*)
      localstatedir=$arg 
      ;;

    --sysconfdir=*)
      sysconfdir=$arg 
      ;;

    --providerdir=*)
      providerdir=$arg 
      ;;

    --providerdir=*)
      providerdir=$arg 
      ;;

    --certsdir=*)
      certsdir=$arg 
      ;;

    --authdir=*)
      authdir=$arg 
      ;;

    --builddir=*)
      builddir=$arg 
      ;;

    --enable-werror)
      enable_werror=1
      ;;

    --enable-wchar)
      enable_wchar=1
      ;;

    --enable-gcov)
      enable_gcov=1
      ;;

    --namespace=*)
      namespace=$arg
      ;;

    --httpport=*)
      httpport=$arg
      ;;

    --httpsport=*)
      httpsport=$arg
      ;;

    --disable-libpath)
      disable_libpath=1
      ;;

    --favorsize)
      favorsize=1
      ;;

    *)
      echo "$0: unknown option:  $opt"
      exit 1
      ;;

  esac
done

##==============================================================================
##
## Print the help message
##
##==============================================================================

if [ "$help" = "1" ]; then

    cat<<EOF

Usage: ./configure [OPTIONS]

OVERVIEW:

This script configures OMI for building. Type the following commands.

    $ ./configure
    $ make

OPTIONS:
    -h, --help              Print this help message.
    --enable-debug          Perform a debug build.
    --enable-gcov           Build for use with gcov code coverage tool.
    --disable-rtti          Disable C++ RTTI support.
    --disable-templates     Disable C++ templates support.
    --enable-werror         Treat warnings as errors.
    --enable-wchar          Use 'wchar_t' character type [char].
    --target=TARGET         Cross-compiler for the given platform.
    --toolchain=PATH        Cross-compiler toolchain path (contains 'lib' dir).
    --prefix=PATH           The installation prefix [/opt/omi-$version]
    --libdir=PATH           Install library components here [*/lib].
    --bindir=PATH           Install programs here [*/bin].
    --includedir=PATH       Install C/C++ include files here [*/include].
    --datadir=PATH          Install data files here [*/share].
    --localstatedir=PATH    Install 'log' and 'run' directories here [*/var].
    --sysconfdir=PATH       Install configuration files here [*/etc].
    --providerdir=PATH      Install provider libraries here [*/lib].
    --certsdir=PATH         Install SSL certificates here [*/etc/ssl/certs].
    --authdir=PATH          Temporary authentication files here [*/var/omiauth].
    --namespace NAME        Name of the default namespace [root/cimv2].
    --buildir=PATH          Alternative location to place build output files.
    --httpport=PORT         Server listens on this port for HTTP protocols.
    --httpsport=PORT        Server listens on this port for HTTPS protocols.
    --disable-libpath         Disable embedding of library search paths in
                            binaries (shared libraries and executables).
    --favorsize             Enable the CONFIG_FAVORSIZE source code macro
                            to compile alternative source code that yields
                            smaller object code size.
                           
EOF
    exit 0
fi

##==============================================================================
##
## The the platform, os, arch, and compiler.
##
##==============================================================================

if [ "$CONFIG_TARGET" != "" ]; then
    export CONFIG_TARGET=$target
fi

if [ "$CONFIG_TOOLCHAIN" != "" ]; then
    export CONFIG_TOOLCHAIN=$toolchain
fi

platform=`./buildtool platform`

if [ "$?" != "0" ]; then
    echo "$0: unknown platform: $platform"
    exit 1
fi

os=`./buildtool os`
arch=`./buildtool arch`
compiler=`./buildtool compiler`

##==============================================================================
##
## Resolve locations
##
##==============================================================================

root=`pwd`

if [ -z "$prefix" ]; then
    prefix=/opt/omi-$version
fi

if [ -z "$bindir" ]; then
    bindir=$prefix/bin
fi

if [ -z "$libdir" ]; then
    libdir=$prefix/lib
fi

if [ -z "$includedir" ]; then
    includedir=$prefix/include
fi

if [ -z "$datadir" ]; then
    datadir=$prefix/share
fi

if [ -z "$localstatedir" ]; then
    localstatedir=$prefix/var
fi

if [ -z "$sysconfdir" ]; then
    sysconfdir=$prefix/etc
fi

if [ -z "$providerdir" ]; then
    providerdir=$libdir
fi

if [ -z "$certsdir" ]; then
    certsdir=$sysconfdir/ssl/certs
fi

if [ -z "$authdir" ]; then
    authdir=$localstatedir/omiauth
fi

if [ -z "$namespace" ]; then
    namespace=root/cimv2
fi

hostname=`./buildtool hostname`

outputdirbase=./output/$hostname

outputdir=$root/output/$hostname

tmpdir=$outputdir/tmp

##==============================================================================
##
## Resolve ports
##
##==============================================================================

if [ -z "$httpport" ]; then
    httpport=7778
else
    rc=`expr "(" "$httpport" ">=" 1 ")" "&" "(" "$httpport" "<=" 65535 ")"`

    if [ "$rc" = "0" ]; then
        echo "$0: invalid --httpport option: $httpport"
        exit 1
    fi
fi

if [ -z "$httpsport" ]; then
    httpsport=7779
else
    rc=`expr "(" "$httpsport" ">=" 1 ")" "&" "(" "$httpsport" "<=" 65535 ")"`

    if [ "$rc" = "0" ]; then
        echo "$0: invalid --httpsport option: $httpsport"
        exit 1
    fi
fi

##==============================================================================
##
## Create output directories.
##
##==============================================================================

if [ -z "$builddir" ]; then
    mkdir -p $outputdir
else
    mkdir -p $builddir
    ln -s $builddir $outputdir
fi

mkdir -p $outputdir/bin
mkdir -p $outputdir/lib
mkdir -p $outputdir/obj
mkdir -p $outputdir/tmp
mkdir -p $outputdir/var
mkdir -p $outputdir/var/log
mkdir -p $outputdir/var/run
mkdir -p $outputdir/var/omiauth
mkdir -p $outputdir/include
mkdir -p $tmpdir

##==============================================================================
##
## Set macros for suppressing the linefeed produced by 'echo' command.
##
##==============================================================================

case `echo -n xyz` in
    -n*)
        echon=
        case `echo 'xyz\c'` in
            *c*)
                echoc=
                ;;
            *)
                echoc='\c'
                ;;
        esac
        ;;
    *)
        echon='-n'
        echoc=
        ;;
esac

##==============================================================================
##
## Attempt to find C compiler.
##
##==============================================================================

echo $echon "checking whether C compiler is on the path... $echoc"

cc=`./buildtool cc`

if [ "$cc" = "" ]; then
    echo "$0: failed"
    exit 1
fi

tmp1=`echo $cc | awk '{ print $1; }'`
tmp2=`which $tmp1`

if [ -x "$tmp2" ]; then
    echo "yes"
else
    echo "no"
    exit 1
fi

##==============================================================================
##
## Attempt to compile and execute a simple C program
##
##==============================================================================

echo $echon "checking whether C compiler compiles... $echoc"
rm -f $tmpdir/cprogram

cat > $tmpdir/cprogram.c <<EOF
int main()
{
    return 123;
}
EOF

( cd $tmpdir ; $cc -o cprogram cprogram.c > /dev/null 2> /dev/null )

if [ "$?" = "0" ]; then
    echo "yes"
else
    echo "no"
    exit 1
fi

if [ -z "$CONFIG_TARGET" ]; then

    echo $echon "checking whether C program executes... $echoc"

    $tmpdir/cprogram

    if [ "$?" = "123" ]; then
        echo "yes"
    else
        echo "no"
        exit 1
    fi


fi

rm $tmpdir/cprogram.c
rm $tmpdir/cprogram

##==============================================================================
##
## Check whether __FUNCTION__ macro is supported.
##
##==============================================================================

echo $echon "checking for __FUNCTION__ macro... $echoc"

rm -f $tmpdir/function

cat > $tmpdir/function.c <<EOF
#include <stdio.h>

int main()
{
    printf("%s\n", __FUNCTION__);
    return 0;
}
EOF

( cd $tmpdir ; $cc -o function function.c > /dev/null 2> /dev/null )

if [ "$?" = "0" ]; then
    have_function_macro=1
    echo "yes"
else
    have_function_macro=0
    echo "no"
fi

rm -f $tmpdir/function.c
rm -f $tmpdir/function

##==============================================================================
##
## Check for 'openssl' command.
##
##==============================================================================

echo $echon "checking whether openssl command is on the path... $echoc"

openssl=`which openssl`

if [ -x "$openssl" ]; then
    echo "yes"
else
    echo "no"
    exit 1
fi

##==============================================================================
##
## Check for 'pkg-config' command.
##
##==============================================================================

echo $echon "checking whether pkg-config command is on the path... $echoc"

pkgconfig=`which pkg-config`

if [ -x "$pkgconfig" ]; then
    echo "yes"
else
    echo "no"
    exit 1
fi

##==============================================================================
##
## Create config.mak file
##
##==============================================================================

fn=$outputdir/config.mak

cat > $fn <<EOF
# CAUTION: This file was generated by 'configure' script.

CONFIG_PRODUCT=$product
CONFIG_FULLPRODUCT=$fullproduct
CONFIG_VERSION=$version
CONFIG_MAJOR=$major
CONFIG_MINOR=$minor
CONFIG_REVISION=$revision
CONFIG_DATE=$date

CONFIG_MAK=1
$platform=1
PLATFORM=$platform
OS=$os
ARCH=$arch
COMPILER=$compiler
ROOT=$root

OUTPUTDIR=$outputdir
SRCDIR=$root/source
LIBDIR=$outputdir/lib
BINDIR=$outputdir/bin
OBJDIR=$outputdir/obj
INCDIR=$outputdir/include
TMPDIR=$tmpdir
OPENSSL=$openssl
PKGCONFIG=$pkgconfig

CONFIG_TARGET=$target
CONFIG_TOOLCHAIN=$toolchain
CONFIG_PREFIX=$prefix
CONFIG_BINDIR=$bindir
CONFIG_LIBDIR=$libdir
CONFIG_INCLUDEDIR=$includedir
CONFIG_DATADIR=$datadir
CONFIG_LOCALSTATEDIR=$localstatedir
CONFIG_SYSCONFDIR=$sysconfdir
CONFIG_PROVIDERDIR=$providerdir
CONFIG_CERTSDIR=$certsdir
CONFIG_AUTHDIR=$authdir
CONFIG_NAMESPACE=$namespace
CONFIG_HTTPPORT=$httpport
CONFIG_HTTPSPORT=$httpsport

ENABLE_DEBUG=$enable_debug
ENABLE_GCOV=$enable_gcov
ENABLE_WERROR=$enable_werror
ENABLE_WCHAR=$enable_wchar
DISABLE_RTTI=$disable_rtti
DISABLE_LIBPATH=$disable_libpath
DISABLE_TEMPLATES=$disable_templates
CONFIG_CIMSCHEMA=$cimschema
CONFIG_FAVORSIZE=$favorsize
EOF

echo "created $fn"

##==============================================================================
##
## Create config.h file
##
##==============================================================================


fn=$outputdir/include/config.h

cat > $fn <<EOF
/* CAUTION: This file was generated by 'configure' script. */
#ifndef _config_h
#define _config_h

#define CONFIG_PRODUCT "$product"
#define CONFIG_FULLPRODUCT "$fullproduct"
#define CONFIG_VERSION "$version"
#define CONFIG_MAJOR $major
#define CONFIG_MINOR $minor
#define CONFIG_REVISION $revision
#define CONFIG_DATE "$date"
#define CONFIG_PLATFORM "$platform"
#define CONFIG_OS "$os"
#define CONFIG_ARCH "$arch"
#define CONFIG_COMPILER "$compiler"
#define CONFIG_PLATFORM_$platform
#define CONFIG_OS_$os
#define CONFIG_ARCH_$arch
#define CONFIG_COMPILER_$compiler
#define CONFIG_POSIX
#define CONFIG_TARGET "$target"
#define CONFIG_TOOLCHAIN "$toolchain"
#define CONFIG_PREFIX "$prefix"
#define CONFIG_LIBDIR "$libdir"
#define CONFIG_INCLUDEDIR "$includedir"
#define CONFIG_DATADIR "$datadir"
#define CONFIG_BINDIR "$bindir"
#define CONFIG_LOCALSTATEDIR "$localstatedir"
#define CONFIG_SYSCONFDIR "$sysconfdir"
#define CONFIG_PROVIDERDIR "$providerdir"
#define CONFIG_CERTSDIR "$certsdir"
#define CONFIG_AUTHDIR "$authdir"
#define CONFIG_NAMESPACE "$namespace"
#define CONFIG_HTTPPORT $httpport
#define CONFIG_HTTPSPORT $httpsport
#define CONFIG_TMPDIR "$tmpdir"
#define CONFIG_CIMSCHEMA "$cimschema"
EOF

if [ "$enable_debug" = "1" ]; then
    echo "#define CONFIG_ENABLE_DEBUG" >> $fn
else
    echo "/* #define CONFIG_ENABLE_DEBUG */" >> $fn
fi

if [ "$enable_gcov" = "1" ]; then
    echo "#define CONFIG_ENABLE_GCOV" >> $fn
else
    echo "/* #define CONFIG_ENABLE_GCOV */" >> $fn
fi

if [ "$enable_werror" = "1" ]; then
    echo "#define CONFIG_ENABLE_WERROR" >> $fn
else
    echo "/* #define CONFIG_ENABLE_WERROR */" >> $fn
fi

if [ "$enable_wchar" = "1" ]; then
    echo "#define CONFIG_ENABLE_WCHAR" >> $fn
else
    echo "/* #define CONFIG_ENABLE_WCHAR */" >> $fn
fi

if [ "$disable_rtti" = "1" ]; then
    echo "#define CONFIG_DISABLE_RTTI" >> $fn
else
    echo "/* #define CONFIG_DISABLE_RTTI */" >> $fn
fi

if [ "$disable_libpath" = "1" ]; then
    echo "#define CONFIG_DISABLE_LIBPATH" >> $fn
else
    echo "/* #define CONFIG_DISABLE_LIBPATH */" >> $fn
fi

if [ "$disable_templates" = "1" ]; then
    echo "#define CONFIG_DISABLE_TEMPLATES" >> $fn
else
    echo "/* #define CONFIG_DISABLE_TEMPLATES */" >> $fn
fi

if [ "$favorsize" = "1" ]; then
    echo "#define CONFIG_FAVORSIZE" >> $fn
else
    echo "/* #define CONFIG_FAVORSIZE */" >> $fn
fi

if [ "$have_function_macro" = "1" ]; then
    echo "#define CONFIG_HAVE_FUNCTION_MACRO" >> $fn
else
    echo "/* #define CONFIG_HAVE_FUNCTION_MACRO */" >> $fn
fi

echo "#define CONFIG_SHLIBEXT \"`./buildtool shlibext`\"" >> $fn

echo "" >> $fn
echo "#endif /* _config_h */" >> $fn

echo "created $fn"
fn=""

##==============================================================================
##
## Setup symbolic links for 'include' directory.
##
##==============================================================================

rm -rf $outputdir/include/MI.h
ln -f -s $root/common/MI.h $outputdir/include/MI.h

rm -rf $outputdir/include/micxx
ln -f -s $root/micxx $outputdir/include/micxx

rm -rf $outputdir/include/omiclient
ln -f -s $root/omiclient $outputdir/include/omiclient

##==============================================================================
##
## Generate omi.mak (end-user makefile).
##
##==============================================================================

fn=$outputdir/omi.mak

cat > $fn <<EOF
CONFIG_PREFIX=$prefix
LIBDIR=\$(OMI_ROOT)/$libdir
BINDIR=\$(OMI_ROOT)/$bindir
INCLUDEDIR=\$(OMI_ROOT)/$includedir
SYSCONFDIR=\$(OMI_ROOT)/$sysconfdir
CXXLIBS = -L\$(LIBDIR) -lmicxx

__OBJECTS = \$(SOURCES:.c=.o)
OBJECTS = \$(__OBJECTS:.cpp=.o)
INCLUDES += -I\$(INCLUDEDIR)

CC=`./buildtool cc`
CXX=`./buildtool cxx`

ifndef DEBUG
  CFLAGS=`./buildtool cflags --debug --pic`
  CXXFLAGS=`./buildtool cxxflags --debug --pic`
else
  CFLAGS=`./buildtool cflags --optim --pic`
  CXXFLAGS=`./buildtool cxxflags --optim --pic`
endif

CSHLIBFLAGS=`./buildtool cshlibflags --libpath=$libdir`
CXXSHLIBFLAGS=`./buildtool cxxshlibflags --libpath=$libdir`
LIBRARY = lib\$(PROVIDER).`./buildtool shlibext`

EOF

echo "created $fn"

##==============================================================================
##
## Generate ssl.cnf (certification configuration file).
##
##==============================================================================

fn=$outputdir/ssl.cnf
longhostname=`./buildtool longhostname`

cat > $fn <<EOF
[ req ]
distinguished_name     = req_distinguished_name
prompt                 = no
[ req_distinguished_name ]
CN                     = $hostname
CN                     = $longhostname
EOF

echo "created $fn"

##==============================================================================
##
## Create 'install' script.
##
##==============================================================================

shlibext=`./buildtool shlibext`
ldlibrarypath=`./buildtool ldlibrarypath`
fn=$outputdir/install

cat > $fn <<EOF
#!/bin/sh
##==============================================================================
##
## This file was generated by ./configure
##
##==============================================================================

##
## Check options
##

for opt
do

  arg=\`expr "x\$opt" : 'x[^=]*=\(.*\)'\`

  case \$opt in

    -h | --help)
      help=1
      ;;

    --destdir=*)
      destdir=\$arg
      ;;

    --openssllibdir=*)
      openssllibdir=\$arg
      if [ ! -d "$openssllibdir" ]; then
        echo "\$0: directory given by --openssllibdir option does not exist: $option"
        exit 1
      fi
      ;;

    *)
      echo "\$0: unknown option:  \$opt"
      exit 1
      ;;

  esac
done

if [ -z "\$destdir" ]; then
  destdir=/
fi

##
## Print help message
##

if [ "\$help" = "1" ]; then
cat<<ENDHELP

Usage: ./install [OPTIONS]

OVERVIEW:

This script installs OMI.

    \$ ./install --destdir /opt

OPTIONS:
    -h, --help              Print this help message.
    --destdir=PATH          Install under PATH (default=/)

ENDHELP
    exit 0
fi

##
## Find openssl program.
##

if [ ! -x "\`which openssl\`" ]; then
    echo "\$0: 'openssl' program not found on path. Please add to path an try again".
    exit 1
fi

##
## Attempt to resolve OpenSSL libdir.
##

openssllibdir=\`./buildtool openssllibdir\`

if [ -n "\$openssllibdir" ]; then
    $ldlibrarypath=\$openssllibdir
    export $ldlibrarypath
fi

openssl -h > /dev/null 2> /dev/null

if [ "\$?" != "0" ]; then
    echo "\$0: openssl program is not executable."
    exit 1
fi

##
## Create directories.
##

mkdir -p \$destdir/$prefix
mkdir -p \$destdir/$bindir
mkdir -p \$destdir/$libdir
mkdir -p \$destdir/$localstatedir
mkdir -p \$destdir/$localstatedir/log
mkdir -p \$destdir/$localstatedir/run
mkdir -p \$destdir/$sysconfdir
mkdir -p \$destdir/$providerdir
mkdir -p \$destdir/$certsdir
mkdir -p \$destdir/$authdir
mkdir -p \$destdir/$includedir
mkdir -p \$destdir/$includedir/micxx
mkdir -p \$destdir/$includedir/omiclient
mkdir -p \$destdir/$datadir
mkdir -p \$destdir/$datadir/omischema
mkdir -p \$destdir/$sysconfdir/omiregister
mkdir -p \$destdir/$sysconfdir/omiregister/interop
mkdir -p "\$destdir/$sysconfdir/omiregister/root#cimv2"
mkdir -p "\$destdir/$sysconfdir/omiregister/root#omi"
mkdir -p "\$destdir/$sysconfdir/omiregister/root#check"
mkdir -p \$destdir/$sysconfdir/omiregister/$namespacedir

##
## Install executables.
##

cp -f $outputdirbase/bin/omiserver \$destdir/$bindir/omiserver.bin
cp -f $outputdirbase/bin/omicli \$destdir/$bindir/omicli.bin
cp -f $outputdirbase/bin/omigen \$destdir/$bindir/omigen.bin
cp -f $outputdirbase/bin/omireg \$destdir/$bindir/omireg.bin
cp -f $outputdirbase/bin/omicheck \$destdir/$bindir/omicheck.bin
cp -f $outputdirbase/bin/omiagent \$destdir/$bindir/omiagent

rm -f \$destdir/$bindir/omicli
rm -f \$destdir/$bindir/omigen
rm -f \$destdir/$bindir/omireg
rm -f \$destdir/$bindir/omiserver
rm -f \$destdir/$bindir/omicheck

cat > \$destdir/$bindir/omiserver <<OMISERVEREND
#!/bin/sh
prog=\\\`basename \\\$0\\\`
$ldlibrarypath=$libdir:\$openssllibdir
export $ldlibrarypath
$bindir/\\\$prog.bin \\\$@
OMISERVEREND

chmod 755 \$destdir/$bindir/omiserver

cp \$destdir/$bindir/omiserver \$destdir/$bindir/omicli
cp \$destdir/$bindir/omiserver \$destdir/$bindir/omigen
cp \$destdir/$bindir/omiserver \$destdir/$bindir/omireg
cp \$destdir/$bindir/omiserver \$destdir/$bindir/omicheck

##
## Install libraries.
##

cp -f $outputdirbase/lib/libmicxx.$shlibext \$destdir/$libdir/
cp -f $outputdirbase/lib/libomiclient.$shlibext \$destdir/$libdir/

if test -f "$outputdirbase/lib/libbase.$shlibext"
then
    cp -f $outputdirbase/lib/libbase.$shlibext \$destdir/$libdir/
fi

##
## Install configuration files.
##

if test ! -f "\$destdir/$sysconfdir/omiserver.conf" 
then 
    cp ./etc/omiserver.conf \$destdir/$sysconfdir/omiserver.conf
fi

if test ! -f "\$destdir/$sysconfdir/omicli.conf"
then 
    cp ./etc/omicli.conf \$destdir/$sysconfdir/omicli.conf
fi

if test ! -f "\$destdir/$sysconfdir/omigen.conf"
then 
    cp ./etc/omigen.conf \$destdir/$sysconfdir/omigen.conf
fi

##
## Install header files.
##

cp -f ./common/MI.h \$destdir/$includedir/
cp -f ./micxx/array.h \$destdir/$includedir/micxx/
cp -f ./micxx/context.h \$destdir/$includedir/micxx/
cp -f ./micxx/field.h \$destdir/$includedir/micxx/
cp -f ./micxx/micxx.h \$destdir/$includedir/micxx/
cp -f ./micxx/types.h \$destdir/$includedir/micxx/
cp -f ./micxx/arraytraits.h \$destdir/$includedir/micxx/
cp -f ./micxx/datetime.h \$destdir/$includedir/micxx/
cp -f ./micxx/instance.h \$destdir/$includedir/micxx/
cp -f ./micxx/propertyset.h \$destdir/$includedir/micxx/
cp -f ./micxx/atomic.h \$destdir/$includedir/micxx/
cp -f ./micxx/dinstance.h \$destdir/$includedir/micxx/
cp -f ./micxx/linkage.h \$destdir/$includedir/micxx/
cp -f ./micxx/string.h \$destdir/$includedir/micxx/
cp -f ./omiclient/linkage.h \$destdir/$includedir/omiclient/
cp -f ./omiclient/client.h \$destdir/$includedir/omiclient/
cp -f ./omiclient/handler.h \$destdir/$includedir/omiclient/

##
## Install schema files (MOF files).
##

cp -f ./share/omischema/CIM_Schema.mof \$destdir/$datadir/omischema/
rm -rf \$destdir/$datadir/omischema/$cimschema
cp -r ./share/omischema/$cimschema \$destdir/$datadir/omischema/

##
## Install providers.
##

cp -f "./etc/omiregister/root#omi/omiidentify.reg" "\$destdir/$sysconfdir/omiregister/root#omi"
cp -f "./etc/omiregister/root#check/omiidentify.reg" "\$destdir/$sysconfdir/omiregister/root#check"
cp -f $outputdirbase/lib/libomiidentify.$shlibext \$destdir/$providerdir/

##
## Install omi.mak.
##

echo "OMI_ROOT=/" > \$destdir/$datadir/omi.mak
cat $outputdirbase/omi.mak >> \$destdir/$datadir/omi.mak

##
## Install certificates.
##

hostname=`./buildtool hostname`
cnffile=./output/$hostname/ssl.cnf
keyfile=\$destdir/$certsdir/omikey.pem
certfile=\$destdir/$certsdir/omi.pem

if [ -f "\$keyfile" -a -f "\$certfile" ]; then
  echo
  echo "************************************************************"
  echo "* Warning: The certificate and keyfile were not generated  *"
  echo "* since they already exist.                                *"
  echo "************************************************************"
else
  openssl req -x509 -sha1 -newkey rsa:2048 -days 3650 -nodes -config \$cnffile -keyout \$keyfile -out \$certfile
  chmod 600 \$keyfile
  chmod 644 \$certfile
fi

##
## Configure PAM.
##

$outputdirbase/installpam

##
## Install 'uninstall' script.
##

cp $outputdirbase/uninstall \$destdir/$bindir/omiuninstall
chmod 755 \$destdir/$bindir/omiuninstall

##
## Print success message!
##

echo "Successfully installed under under: \$destdir/$prefix"

EOF

chmod +x $fn
echo "created $fn"

##==============================================================================
##
## Create 'uninstall' script.
##
##==============================================================================

shlibext=`./buildtool shlibext`
fn=$outputdir/uninstall

cat > $fn <<EOF
#!/bin/sh
##==============================================================================
##
## This file was generated by ./configure
##
##==============================================================================

rm -rf $prefix/bin/omiserver
rm -rf $prefix/bin/omiserver.bin
rm -rf $prefix/bin/omiagent
rm -rf $prefix/bin/omicli
rm -rf $prefix/bin/omicli.bin
rm -rf $prefix/bin/omigen
rm -rf $prefix/bin/omigen.bin
rm -rf $prefix/bin/omireg
rm -rf $prefix/bin/omireg.bin
rm -rf $prefix/bin/omicheck
rm -rf $prefix/bin/omicheck.bin
rm -rf $prefix/lib/libmicxx.$shlibext
rm -rf $prefix/lib/libomiclient.$shlibext
rm -rf $prefix/lib/libomiidentify.$shlibext
rm -rf $prefix/var/log/omiserver.log
rm -rf $prefix/var/log/omiagent.*.*.log
rm -rf $prefix/var/run/omiserver.pid
rm -rf $prefix/var/run/omiserver.sock
rm -rf $prefix/var/omiauth
rm -rf $prefix/etc/omiregister
rm -rf $prefix/include/micxx
rm -rf $prefix/include/omiclient
rm -rf $prefix/include/MI.h
rm -rf $prefix/share/omischema
rm -rf $prefix/share/omi.mak

EOF

chmod +x $fn
echo "created $fn"

##==============================================================================
##
## Take suitable 'installpam' script.
##
##==============================================================================

os=`uname -s`
fn=$outputdir/installpam
rm -f $fn

case $os in
        Linux)
            if [ -f /etc/S[uU]SE-release ]; then 
                cp ./scripts/installpam-sles $fn
            else
                cp ./scripts/installpam-rhel $fn
            fi
            ;;
        HP-UX)
            cp ./scripts/installpam-hp $fn
            ;;
        AIX)
            cp ./scripts/installpam-aix $fn
            ;;
        SunOS)
            VERSION=`uname -r | sed 's/[0-9]\.//'`
            if [ "$VERSION" = "10" ]; then
                cp ./scripts/installpam-sun10 $fn
            else
                cp ./scripts/installpam-sun9 $fn
            fi
            ;;
        Darwin)
            echo "pam script is not supported on Mac-OS yet"
            touch $fn
            ;;
        *)
            echo "Unknown"
            exit 1
        ;;
esac

test -f $fn && chmod +x $fn && echo "pam-script configured"

##==============================================================================
##
## Put platform configuration message.
##
##==============================================================================

echo "Configured for $platform"

ViewCVS 0.9.2