File: [OMI] / omi / configure
(download)
Revision: 1.1,
Wed May 30 21:47:39 2012 UTC (12 years ago) by mike
Branch: MAIN
Initial revision
|
#!/bin/sh
##==============================================================================
##
## Product, Version, and Bilddate information:
##
##==============================================================================
product="OMI"
fullproduct="Open Management Infrastructure"
major=1
minor=0
revision=0
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
;;
*)
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-1.0.0]
--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).
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-1.0.0
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_MINOR=$minor
CONFIG_MAJOR=$major
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
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_MINOR $minor
#define CONFIG_MAJOR $major
#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 [ "$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"