From: admin
Date: Fri, 16 May 2003 10:27:43 +0000 (+0000)
Subject: Initialisation de la base KERNEL avec la version operationnelle de KERNEL_SRC issue...
X-Git-Tag: V1_0~1
X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=4655b0b0eb5345da6a86852021014b0cbae2ad30;p=modules%2Fkernel.git
Initialisation de la base KERNEL avec la version operationnelle de KERNEL_SRC issue de SalomePro1.1a.
---
4655b0b0eb5345da6a86852021014b0cbae2ad30
diff --git a/build_configure b/build_configure
new file mode 100755
index 000000000..6f7bd3309
--- /dev/null
+++ b/build_configure
@@ -0,0 +1,196 @@
+#!/bin/bash
+
+#
+# Tool for updating list of .in file for the SALOME project
+# and regenerating configure script
+#
+# Author : Marc Tajchman - CEA
+# Date : 10/10/2002
+# $Header$
+#
+
+ORIG_DIR=`pwd`
+CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"`
+
+########################################################################
+# find_in - utility function
+#
+# usage :
+# find_in directory filename
+#
+# Finds files following the *.in pattern, recursively in the
+# directory (first argument).
+# Results are appended into the file (second argument)
+#
+# Difference from the standard unix find is that files are tested
+# before directories
+#
+
+find_in()
+{
+ local i
+ local f=$2
+
+# if the first argument is not a directory, returns
+
+ if [ ! -d "$1" ] ; then
+ return
+ fi
+
+# dont look in the CVS directories
+
+ case $1 in
+ */CVS) return ;;
+ *) ;;
+ esac
+
+# for each regular file contained in the directory
+# test if it's a .in file
+
+ for i in "$1"/*
+ do
+ if [ -f "$i" ] ; then
+ case $i in
+ *.in) echo " "$i" \\" >> $f;;
+ *) ;;
+ esac
+ fi
+ done
+
+# for each subdirectory of the first argument, proceeds recursively
+
+ for i in "$1"/*
+ do
+ if [ -d "$i" ] ; then
+ find_in "$i" "$f"
+ fi
+ done
+}
+
+
+#######################################################################
+# Generate list of .in files (Makefile.in, config.h.in, etc)
+# appending it in file configure.in
+
+cd ${CONF_DIR}
+ABS_CONF_DIR=`pwd`
+
+#
+# Common part of the configure.in file
+#
+chmod u+w configure.in.base
+if ! \cp -f configure.in.base configure.in_tmp1
+then
+ echo
+ echo "error : can't create files in" ${CONF_DIR}
+ echo "aborting ..."
+ chmod u-w configure.in.base
+ exit
+fi
+chmod u-w configure.in.base
+
+#############################################
+echo '' >> configure.in_tmp1
+echo 'export TEMPO=${KERNEL_ROOT_DIR}' >> configure.in_tmp1
+echo 'export KERNEL_ROOT_DIR=${ROOT_SRCDIR}' >> configure.in_tmp1
+#############################################
+
+echo "" >> configure.in_tmp1
+echo "AC_OUTPUT([ \\" >> configure.in_tmp1
+
+#
+# List of .in files in the adm/unix directory
+# These files MUST be on top of AC_OUTPUT list so we
+# put them "manually"
+#
+
+echo " ./salome_adm/unix/SALOMEconfig.h \\" >> configure.in_tmp1
+echo " ./salome_adm/unix/F77config.h \\" >> configure.in_tmp1
+echo " ./salome_adm/unix/sstream \\" >> configure.in_tmp1
+echo " ./salome_adm/unix/depend \\" >> configure.in_tmp1
+echo " ./salome_adm/unix/make_omniorb \\" >> configure.in_tmp1
+echo " ./salome_adm/unix/envScript \\" >> configure.in_tmp1
+echo " ./salome_adm/unix/make_commence \\" >> configure.in_tmp1
+echo " ./salome_adm/unix/make_conclude \\" >> configure.in_tmp1
+echo " ./salome_adm/unix/make_module \\" >> configure.in_tmp1
+echo " ./salome_adm/Makefile \\" >> configure.in_tmp1
+
+\rm -f configure.in_tmp2 configure.in_tmp3
+touch configure.in_tmp2
+find_in . configure.in_tmp2
+sed '/^...salome_adm/d' configure.in_tmp2 > configure.in_tmp3
+sed '/configure.in/d' configure.in_tmp3 > configure.in_tmp2
+sed 's/.in / /' configure.in_tmp2 >> configure.in_tmp1
+
+echo "])" >> configure.in_tmp1
+
+#############################################
+echo 'export KERNEL_ROOT_DIR=${TEMPO}' >> configure.in_tmp1
+#############################################
+
+\mv configure.in_tmp1 configure.in_new
+\rm -f configure.in_tmp2 configure.in_tmp3
+
+
+########################################################################
+# Create new (or replace old) configure.in file
+# Print a message if the file is write protected
+#
+
+echo
+if test ! -f configure.in
+then
+ echo -n "Creating new file 'configure.in' ... "
+ if \mv configure.in_new configure.in >& /dev/null
+ then
+ echo "done"
+ else
+ echo "error, check your file permissions"
+ fi
+else
+ echo -n "Updating 'configure.in' file ... "
+ if ! \cp configure.in configure.in_old >& /dev/null
+ then
+ echo
+ echo
+ echo "Can't backup previous configure.in"
+ echo -n "Continue (you will not be able to revert) - (Y/N) ? "
+ read R
+ case "x$R" in
+ xn*) exit;;
+ xN*) exit;;
+ esac
+ echo
+ echo -n " "
+ fi
+ if \cp configure.in_new configure.in >& /dev/null
+ then
+ echo "done"
+ else
+ echo
+ echo "error, can't update previous configure.in"
+ fi
+fi
+
+########################################################################
+# Use autoconf to rebuild the configure script
+#
+
+if test -f configure
+then
+ echo -n "Updating 'configure' script ... "
+else
+ echo -n "Creating 'configure' script ... "
+fi
+
+aclocal --acdir=salome_adm/unix/config_files
+if autoconf
+then
+ echo "done"
+else
+ echo "failed (check file permissions and/or user quotas ...)"
+fi
+
+cd ${ORIG_DIR}
+
+echo
diff --git a/configure.in.base b/configure.in.base
new file mode 100644
index 000000000..8e3ab92de
--- /dev/null
+++ b/configure.in.base
@@ -0,0 +1,384 @@
+#
+# PLEASE DO NOT MODIFY configure.in FILE
+#
+# ALL CHANGES WILL BE DISCARDED BY THE NEXT
+# build_configure COMMAND
+#
+# CHANGES MUST BE MADE IN configure.in.base FILE
+#
+#
+# Author : Marc Tajchman (CEA)
+# Date : 28/06/2001
+# Modified by : Patrick GOLDBRONN (CEA)
+# Modified by : Marc Tajchman (CEA)
+#
+# Created from configure.in.base
+#
+
+AC_INIT(src)
+AC_CONFIG_AUX_DIR(salome_adm/unix/config_files)
+AC_CANONICAL_HOST
+
+PACKAGE=salome
+AC_SUBST(PACKAGE)
+
+VERSION=0.0.1
+AC_SUBST(VERSION)
+
+dnl
+dnl Initialize source and build root directories
+dnl
+
+ROOT_BUILDDIR=`pwd`
+ROOT_SRCDIR=`echo $0 | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
+cd $ROOT_SRCDIR
+ROOT_SRCDIR=`pwd`
+cd $ROOT_BUILDDIR
+
+AC_SUBST(ROOT_SRCDIR)
+AC_SUBST(ROOT_BUILDDIR)
+dnl ##########################################################
+AC_SUBST(KERNEL_ROOT_DIR)
+dnl ##########################################################
+
+echo
+echo Source root directory : $ROOT_SRCDIR
+echo Build root directory : $ROOT_BUILDDIR
+echo
+echo
+
+if test -z "$AR"; then
+ AC_CHECK_PROGS(AR,ar xar,:,$PATH)
+fi
+AC_SUBST(AR)
+
+dnl Export the AR macro so that it will be placed in the libtool file
+dnl correctly.
+export AR
+
+echo
+echo ---------------------------------------------
+echo testing make
+echo ---------------------------------------------
+echo
+
+AC_PROG_MAKE_SET
+AC_PROG_INSTALL
+dnl
+dnl libtool macro check for CC, LD, NM, LN_S, RANLIB, STRIP + pour les librairies dynamiques !
+
+AC_ENABLE_DEBUG(yes)
+AC_DISABLE_PRODUCTION
+
+echo ---------------------------------------------
+echo testing libtool
+echo ---------------------------------------------
+
+dnl first, we set static to no!
+dnl if we want it, use --enable-static
+AC_ENABLE_STATIC(no)
+
+AC_LIBTOOL_DLOPEN
+AC_PROG_LIBTOOL
+
+dnl Fix up the INSTALL macro if it s a relative path. We want the
+dnl full-path to the binary instead.
+case "$INSTALL" in
+ *install-sh*)
+ INSTALL='\${top_srcdir}'/salome_adm/unix/config_files/install-sh
+ ;;
+esac
+
+echo
+echo ---------------------------------------------
+echo testing C/C++
+echo ---------------------------------------------
+echo
+
+cc_ok=no
+dnl inutil car libtool
+dnl AC_PROG_CC
+AC_PROG_CXX
+AC_DEPEND_FLAG
+# AC_CC_WARNINGS([ansi])
+cc_ok=yes
+
+dnl Library libdl :
+AC_CHECK_LIB(dl,dlopen)
+
+dnl add library libm :
+AC_CHECK_LIB(m,ceil)
+
+dnl
+dnl Well we use sstream which is not in gcc pre-2.95.3
+dnl We must test if it exists. If not, add it in include !
+dnl
+
+AC_CXX_HAVE_SSTREAM
+
+dnl
+dnl ---------------------------------------------
+dnl testing MPICH
+dnl ---------------------------------------------
+dnl
+
+CHECK_MPICH
+
+echo
+echo ---------------------------------------------
+echo testing LEX \& YACC
+echo ---------------------------------------------
+echo
+
+lex_yacc_ok=no
+AC_PROG_YACC
+AC_PROG_LEX
+lex_yacc_ok=yes
+
+echo
+echo ---------------------------------------------
+echo testing python
+echo ---------------------------------------------
+echo
+
+CHECK_PYTHON
+
+dnl echo
+dnl echo ---------------------------------------------
+dnl echo testing java
+dnl echo ---------------------------------------------
+dnl echo
+
+dnl CHECK_JAVA
+
+echo
+echo ---------------------------------------------
+echo testing swig
+echo ---------------------------------------------
+echo
+
+CHECK_SWIG
+
+echo
+echo ---------------------------------------------
+echo testing threads
+echo ---------------------------------------------
+echo
+
+ENABLE_PTHREADS
+
+echo
+echo ---------------------------------------------
+echo testing omniORB
+echo ---------------------------------------------
+echo
+
+CHECK_OMNIORB
+
+dnl echo
+dnl echo ---------------------------------------------
+dnl echo testing mico
+dnl echo ---------------------------------------------
+dnl echo
+
+dnl CHECK_MICO
+
+echo
+echo ---------------------------------------------
+echo default ORB : omniORB
+echo ---------------------------------------------
+echo
+
+DEFAULT_ORB=omniORB
+CHECK_CORBA
+
+AC_SUBST_FILE(CORBA)
+corba=make_$ORB
+CORBA=salome_adm/unix/$corba
+
+echo
+echo ---------------------------------------------
+echo testing openGL
+echo ---------------------------------------------
+echo
+
+CHECK_OPENGL
+
+echo
+echo ---------------------------------------------
+echo testing QT
+echo ---------------------------------------------
+echo
+
+CHECK_QT
+
+echo
+echo ---------------------------------------------
+echo testing VTK
+echo ---------------------------------------------
+echo
+
+CHECK_VTK
+
+echo
+echo ---------------------------------------------
+echo testing HDF5
+echo ---------------------------------------------
+echo
+
+CHECK_HDF5
+
+echo
+echo ---------------------------------------------
+echo testing MED2
+echo ---------------------------------------------
+echo
+
+CHECK_MED2
+
+echo
+echo ---------------------------------------------
+echo Testing OpenCascade
+echo ---------------------------------------------
+echo
+
+CHECK_CAS
+
+echo
+echo ---------------------------------------------
+echo Testing sip
+echo ---------------------------------------------
+echo
+
+CHECK_SIP
+
+echo
+echo ---------------------------------------------
+echo Testing pyqt
+echo ---------------------------------------------
+echo
+
+CHECK_PYQT
+
+echo
+echo ---------------------------------------------
+echo Testing qwt
+echo ---------------------------------------------
+echo
+
+CHECK_QWT
+
+echo
+echo ---------------------------------------------
+echo Testing html generators
+echo ---------------------------------------------
+echo
+
+CHECK_HTML_GENERATORS
+
+echo
+echo ---------------------------------------------
+echo Summary
+echo ---------------------------------------------
+echo
+
+echo Configure
+variables="cc_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok med2_ok omniORB_ok occ_ok sip_ok pyqt_ok qwt_ok doxygen_ok graphviz_ok"
+
+for var in $variables
+do
+ printf " %10s : " `echo \$var | sed -e "s,_ok,,"`
+ eval echo \$$var
+done
+
+echo
+echo "Default ORB : $DEFAULT_ORB"
+echo
+
+dnl generals files which could be included in every makefile
+
+AC_SUBST_FILE(COMMENCE) COMMENCE=salome_adm/unix/make_commence
+AC_SUBST_FILE(CONCLUDE) CONCLUDE=salome_adm/unix/make_conclude
+AC_SUBST_FILE(MODULE) MODULE=salome_adm/unix/make_module
+
+dnl les dependences
+AC_SUBST_FILE(DEPEND) DEPEND=salome_adm/unix/depend
+
+dnl We don t need to say when we re entering directories if we re using
+dnl GNU make becuase make does it for us.
+if test "X$GMAKE" = "Xyes"; then
+ AC_SUBST(SETX) SETX=":"
+else
+ AC_SUBST(SETX) SETX="set -x"
+fi
+
+# make other build directories
+for rep in salome_adm adm_local doc bin/salome include/salome lib/salome share/salome/resources share/salome/doc idl
+do
+# if test ! -d $rep ; then
+# eval mkdir $rep
+# fi
+ $INSTALL -d $rep
+done
+
+echo
+echo ---------------------------------------------
+echo copying resource files, shell scripts, and
+echo xml files
+echo ---------------------------------------------
+echo
+
+
+dnl copy resources directories
+
+#for i in `find $ROOT_SRCDIR -name 'resources' -print`
+#do
+# local_res=`echo $i | sed -e "s,$ROOT_SRCDIR,.,"`
+# local_res_dir=`echo $local_res | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
+# mkdir -p $local_res_dir
+# cd $local_res_dir
+# ln -fs $i
+# echo $local_res
+# cd $ROOT_BUILDDIR
+#done
+
+dnl copy shells and utilities contained in the bin directory
+dnl excluding .in files (treated in AC-OUTPUT below) and CVS
+dnl directory
+
+cd bin
+for i in $ROOT_SRCDIR/bin/*
+do
+ local_bin=`echo $i | sed -e "s,$ROOT_SRCDIR,.,"`
+ case "$local_bin" in
+ *.in | *~) ;;
+ ./bin/CVS) ;;
+ *) ln -fs $i; echo $local_bin ;;
+ esac
+done
+cd $ROOT_BUILDDIR
+
+AC_SUBST_FILE(ENVSCRIPT) ENVSCRIPT=salome_adm/unix/envScript
+
+dnl copy xml files to the build tree (lib directory)
+dnl pourquoi ????
+
+#cd lib
+#for i in `find $ROOT_SRCDIR -name "*.xml" -print`
+#do
+# ln -fs $i
+# echo `echo $i | sed -e "s,$ROOT_SRCDIR,.,"`
+#done
+#cd $ROOT_BUILDDIR
+
+echo
+echo ---------------------------------------------
+echo generating Makefiles and configure files
+echo ---------------------------------------------
+echo
+
+AC_OUTPUT_COMMANDS([ \
+ chmod +x ./bin/* \
+])
+
+## do not delete this line
diff --git a/idl/Logger.idl b/idl/Logger.idl
new file mode 100644
index 000000000..57be3a2f2
--- /dev/null
+++ b/idl/Logger.idl
@@ -0,0 +1,24 @@
+//=============================================================================
+// File : Logger.idl
+// Created : nov 18 10:28:17 2002
+// Author : Vasily Rusyaev
+// Project : SALOME/PRO
+//=============================================================================
+
+#ifndef SALOME_LOGGER_IDL
+#define SALOME_LOGGER_IDL
+
+#pragma prefix "opencascade.com"
+
+module SALOME_Logger
+{
+ interface Logger
+ {
+ //put message into one special place for all servers using Logger
+ oneway void putMessage (in string message);
+ };
+};
+
+
+
+#endif
diff --git a/idl/MPIContainer.idl b/idl/MPIContainer.idl
new file mode 100644
index 000000000..3e9ee2287
--- /dev/null
+++ b/idl/MPIContainer.idl
@@ -0,0 +1,15 @@
+#ifndef _SALOME_MPICONTAINER_IDL_
+#define _SALOME_MPICONTAINER_IDL_
+
+#include "SALOME_Component.idl"
+#include "MPIObject.idl"
+
+module Engines
+{
+ interface MPIContainer:Container,MPIObject
+ {
+ } ;
+} ;
+
+#endif
+
diff --git a/idl/MPIObject.idl b/idl/MPIObject.idl
new file mode 100644
index 000000000..ea82c2f03
--- /dev/null
+++ b/idl/MPIObject.idl
@@ -0,0 +1,13 @@
+#ifndef _SALOME_MPIOBJECT_IDL_
+#define _SALOME_MPIOBJECT_IDL_
+
+module Engines
+{
+ typedef sequence
+*/
+
+ interface Study
+ {
+ exception StudyInvalidContext {};
+ exception StudyInvalidComponent {};
+/*! Invalid directory of the %study exception
+*/
+ exception StudyInvalidDirectory {};
+/*! Exception pointing that this name of the study has already been used.
+*/
+ exception StudyNameAlreadyUsed {};
+ exception StudyObjectAlreadyExists {};
+/*! Invalid name of the %study exception
+*/
+ exception StudyNameError {};
+ exception StudyCommentError {};
+/*! \brief The name of the %Study
+
+ This is equivalent to the methods setName() & getName()
+*/
+ attribute string Name; // equivalent to setName() & getName()
+/*! \brief The ID of the %Study
+
+ This is equivalent to the methods setID() & getID()
+*/
+ attribute short StudyId;
+/*! Sequence containing %SObjects
+*/
+ typedef sequence ListOfSObject;
+/*!
+ Gets a persistent reference to the %Study.
+*/
+ PersistentReference GetPersistentReference();
+ const string GetPersistentReference__doc__ = "Gets a persistent reference to the study.";
+/*!
+ Gets a transient reference to the %Study.
+*/
+ SalomeReference GetTransientReference();
+ const string GetTransientReference__doc__ = "Gets a transient reference to the study.";
+
+/*!
+ Returns True if the %Study is empty
+*/
+ boolean IsEmpty();
+ const string IsEmpty__doc__ = "Returns True if the study is empty.";
+/*!
+ Allows to find a %SComponent by its name.
+ \param aComponentName It's a string value in the Comment Attribute of the Component,
+ which is looked for, defining the data type of this Component.
+
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ SComponent FindComponent (in string aComponentName);
+ const string FindComponent__doc__ = "Allows to find a SComponent by its name.";
+/*!
+ Allows to find a %SComponent by ID of the according %SObject
+*/
+ SComponent FindComponentID(in ID aComponentID);
+ const string FindComponentID__doc__ = "Allows to find a SComponent by ID of the according SObject.";
+/*!
+ Allows to find a %SObject by the Name Attribute of this %SObject
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ SObject FindObject (in string anObjectName);
+ const string FindObject__doc__ = "Allows to find a SObject by the Name Attribute of this SObject.";
+/*!
+ Allows to find a %SObject by its ID
+*/
+ SObject FindObjectID (in ID aObjectID);
+ const string FindObjectID__doc__ = "Allows to find a SObject by its ID";
+/*!
+ Allows to find a %SObject by IOR of the object belonging to this %SObject.
+*/
+ SObject FindObjectIOR (in ID aObjectIOR);
+ const string FindObjectIOR__doc__ = "Allows to find a SObject by IOR of the object belonging to this SObject.";
+/*!
+ Returns a list of %SObjects belonging to this %Component. The Name Attribute
+ of these %SObjects should correspond to anObjectName.
+*/
+ ListOfSObject FindObjectByName(in string anObjectName, in string aComponentName);
+ const string FindObjectByName__doc__ = "Returns a list of SObjects belonging to this Component.";
+/*!
+ Allows to find a %SObject by the path to it.
+*/
+ SObject FindObjectByPath(in string thePath);
+ const string FindObjectByPath__doc__ = "Allows to find a SObject by the path to it.";
+/*!
+ Returns the path to the %SObject.
+*/
+ string GetObjectPath(in Object theObject);
+ const string GetObjectPath__doc__ = "Returns the path to the SObject";
+
+/*!
+ Sets the context of the %Study.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void SetContext(in string thePath);
+ const string SetContext__doc__ = "Sets the context of the study";
+/*!
+ Gets the context of the %Study
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ string GetContext();
+ const string GetContext__doc__ = "Gets the context of the study";
+/*!
+ Returns a list of names of objects corresponding to the context.
+ \note If the parameter theContext is empty, then the current context will be used.
+*/
+ ListOfStrings GetObjectNames(in string theContext);
+ const string GetObjectNames__doc__ = "Returns a list of names of objects corresponding to the context.";
+/*!
+ Returns a list of names of directories and subdirectories corresponding to the context.
+ \note If the parameter theContext is empty, then the current context will be used.
+*/
+ ListOfStrings GetDirectoryNames(in string theContext);
+ const string GetDirectoryNames__doc__ = "Returns a list of names of directories and subdirectories corresponding to the context.";
+/*!
+ Returns a list of names of Files corresponding to the context.
+ \note If the parameter theContext is empty, then the current context will be used.
+*/
+ ListOfStrings GetFileNames(in string theContext);
+ const string GetFileNames__doc__ = "Returns a list of names of Files corresponding to the context.";
+/*!
+ Returns a list of names of Components corresponding to the context.
+ \note If the parameter theContext is empty, then the current context will be used.
+*/
+ ListOfStrings GetComponentNames(in string theContext);
+ const string GetComponentNames__doc__ = "Returns a list of names of Components corresponding to the context.";
+/*! \brief Creation of a new iterator of child levels
+
+ Creates a new iterator of child levels of the %SObject
+*/
+ ChildIterator NewChildIterator(in SObject aSO);
+ const string NewChildIterator__doc__ = "Creates a new iterator of child levels of the SObject";
+/*! \brief Creation of a new iterator of the %SComponent
+
+ Creates a new iterator of the %SComponent.
+*/
+ SComponentIterator NewComponentIterator();
+ const string NewComponentIterator__doc__ = "Creates a new iterator of the SComponent.";
+/*! \brief Creation of a %StudyBuilder
+
+ Creates a new %StudyBuilder to add or modify an object in the study.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ StudyBuilder NewBuilder() ;
+ const string NewBuilder__doc__ = "Creates a new StudyBuilder to add or modify an object in the study.";
+/*! \brief Labels dependency
+
+ Updates the map with IOR attribute. It's an inner method used for optimization.
+*/
+ void UpdateIORLabelMap(in string anIOR, in string anEntry);
+ const string UpdateIORLabelMap__doc__ = "Updates the map with IOR attribute. It's an inner method used for optimization.";
+
+/*! \brief Getting properties of the study
+
+ Returns the attriubte, which contains the properties of this study.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ AttributeStudyProperties GetProperties();
+ const string GetProperties__doc__ = "Returns the attriubte, which contains the properties of this study.";
+/*!
+ Determines whether the %study has been saved
+*/
+ attribute boolean IsSaved;
+ const string IsSaved__doc__ = "Determines whether the study has been saved.";
+/*!
+ Returns True if the %study has been modified and not saved.
+*/
+ boolean IsModified();
+ const string IsModified__doc__ = "Returns True if the study has been modified and not saved.";
+/*!
+ Determines the file where the %study has been saved
+*/
+ attribute string URL;
+
+/*! \brief List of %SObjects
+
+ Returns the list of %SObjects which refers to %anObject.
+*/
+ ListOfSObject FindDependances(in SObject anObject);
+ const string FindDependances__doc__ = "Returns the list of SObjects which refers to anObject.";
+
+/*! \brief The date of the last saving of the study
+
+ Returns the date of the last saving of study with format: "DD/MM/YYYY HH:MM"
+*/
+ string GetLastModificationDate();
+ const string GetLastModificationDate__doc__ = "Returns the date of the last saving of study with format: DD/MM/YYYY HH:MM";
+/*! \brief The list of modification dates of the study
+
+ Returns the list of modification dates (without creation date) with format "DD/MM/YYYY HH:MM".
+ Note : the first modification begins the list.
+*/
+ ListOfDates GetModificationsDate();
+ const string GetModificationsDate__doc__ = "Returns the list of modification dates (without creation date) with format DD/MM/YYYY HH:MM.";
+/*! \brief Object conversion.
+
+ Converts an object into IOR.
+ \return IOR
+*/
+ string ConvertObjectToIOR(in Object theObject);
+ const string ConvertObjectToIOR__doc__ = "Converts an object into IOR.";
+/*! \brief Object conversion.
+
+ Converts IOR into an object.
+ \return An object
+*/
+ Object ConvertIORToObject(in string theIOR);
+ const string ConvertIORToObject__doc__ = "Converts IOR into an object.";
+/*!
+ Gets a new %UseCaseBuilder.
+*/
+ UseCaseBuilder GetUseCaseBuilder();
+ const string GetUseCaseBuilder__doc__ = "Gets a new UseCaseBuilder.";
+
+/*!
+ Closes the components in the study, removes itself from the %StudyManager.
+*/
+ void Close();
+ const string Close__doc__ = "Closes the components in the study, removes itself from the StudyManager.";
+
+/*!
+ Enables(if isEnabled = True)/disables automatic addition of new %SObjects to the use case.
+*/
+ void EnableUseCaseAutoFilling(in boolean isEnabled);
+ const string EnableUseCaseAutoFilling__doc__ = "Enables(if isEnabled = True)/disables automatic addition of new SObjects to the use case.";
+ };
+ const string Study__doc__ = "The Study interface contains a set of mrthods used for management of \nthe data produced by various components of SALOME platform.";
+
+ //==========================================================================
+/*! \brief %Study Builder Interface
+
+ The purpose of the Builder is to add and/or remove objects and attributes.
+ A %StudyBuilder is linked to a %Study. A
+ command management is provided for the undo/redo functionalities.
+ \note
+ The Tag of an item in %SALOME application is a symbolic description of
+ item's position in the tree-type structure of the browser. In general it has the following
+ form: 0:2:1:1
+*/
+ //==========================================================================
+
+ interface StudyBuilder
+ {
+/*! \brief %LockProtection Exception
+
+ This exception is raised while attempting to modify a locked %study.
+*/
+ exception LockProtection {};
+/*! \brief Creation of a new %SComponent.
+
+ Creates a new %SComponent
+ \param ComponentDataType Data type of the %SComponent which will be created.
+
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ SComponent NewComponent(in string ComponentDataType);
+ const string NewComponent__doc__ = "Creates a new SComponent.";
+/*! \brief Definition of the instance to the %SComponent
+
+ Defines the instance to the %SComponent.
+*/
+ void DefineComponentInstance (in SComponent aComponent,in Object ComponentIOR);
+ const string DefineComponentInstance__doc__ = "Defines the instance to the SComponent.";
+/*! \brief Deletion of the %SComponent
+
+ Removes the %SComponent.
+*/
+ void RemoveComponent(in SComponent aComponent);
+ const string RemoveComponent__doc__ = "Removes the SComponent.";
+
+/*! \brief Creation of a new %SObject
+
+ Creates a new %SObject.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ SObject NewObject (in SObject theFatherObject);
+ const string NewObject__doc__ = "Creates a new SObject.";
+/*! \brief Creation of a new %SObject with a definite %tag
+
+ Creates a new %SObject with a definite %tag.
+*/
+ SObject NewObjectToTag (in SObject theFatherObject, in long atag);
+ const string NewObjectToTag__doc__ = "Creates a new SObject with a definite tag.";
+/*! \brief Deletion of the %SObject
+
+ Removes a %SObject from the %StudyBuilder.
+*/
+ void RemoveObject (in SObject anObject);
+ const string RemoveObject__doc__ = "Removes a SObject from the StudyBuilder.";
+/*! \brief Deletion of the %SObject with all his child objects.
+
+ Removes the %SObject with all his child objects.
+*/
+ void RemoveObjectWithChildren(in SObject anObject);
+ const string RemoveObjectWithChildren__doc__ = "Removes the SObject with all his child objects.";
+
+/*!
+ Loads a %SComponent.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void LoadWith (in SComponent sco, in Driver Engine) raises (SALOME::SALOME_Exception);
+ const string LoadWith__doc__ = "Loads a SComponent.";
+/*!
+ Loads a %SObject.
+*/
+ void Load (in SObject sco);
+ const string Load__doc__ = "Loads a SObject.";
+
+/*! \brief Looking for or creating an attribute assigned to the %SObject
+
+ Allows to find or create an attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute which is looked for.
+ \param aTypeOfAttribute Type of the attribute.
+
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+
+ GenericAttribute FindOrCreateAttribute(in SObject anObject,
+ in string aTypeOfAttribute);
+ const string FindOrCreateAttribute__doc__ = "Allows to find or create an attribute of a specific type which is assigned to the object.";
+
+/*! \brief Looking for an attribute assigned to %SObject
+
+ Allows to find an attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute which is looked for.
+ \param aTypeOfAttribute Type of the attribute.
+ \param anAttribute Where the attribute is placed if it's found.
+ \return True if it finds an attribute.
+ */
+
+ boolean FindAttribute(in SObject anObject,
+ out GenericAttribute anAttribute,
+ in string aTypeOfAttribute);
+ const string FindAttribute__doc__ = "Allows to find an attribute of a specific type which is assigned to the object.";
+/*! \brief Deleting the attribute assigned to the %SObject
+
+ Removes the attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute.
+ \param aTypeOfAttribute Type of the attribute.
+
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ void RemoveAttribute(in SObject anObject,
+ in string aTypeOfAttribute);
+ const string RemoveAttribute__doc__ = "Removes the attribute of a specific type which is assigned to the object.";
+/*! \brief Addition of a reference
+
+ Adds a reference between %anObject and %theReferencedObject.
+*/
+
+ void Addreference(in SObject anObject,
+ in SObject theReferencedObject) ;
+ const string Addreference__doc__ = "Adds a reference between anObject and theReferencedObject.";
+/*!
+ Adds a directory in the %Study.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void AddDirectory(in string theName);
+ const string AddDirectory__doc__ = "Adds a directory in the Study.";
+
+/*! \brief Identification of the %SObject's substructure.
+
+ Identification of the %SObject's substructure by GUID.
+ It has the following format "00000000-0000-0000-0000-000000000000"
+*/
+
+ void SetGUID(in SObject anObject, in string theGUID);
+ const string SetGUID__doc__ = "Identification of the %SObject's substructure by GUID. \nIt has the following format: 00000000-0000-0000-0000-000000000000.";
+/*!
+
+ Returns True if the %SObject has GUID.
+*/
+ boolean IsGUID(in SObject anObject, in string theGUID);
+ const string IsGUID__doc__ = "Returns True if the SObject has GUID.";
+
+/*! \brief Creation of a new command
+
+ Creates a new command which can contain several different actions.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void NewCommand(); // command management
+ const string NewCommand__doc__ = "Creates a new command which can contain several different actions.";
+/*! \brief Execution of the command
+
+ Commits all actions declared within this command.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void CommitCommand() raises(LockProtection); // command management
+ const string CommitCommand__doc__ = "Commits all actions declared within this command.";
+/*!
+ Returns True if at this moment there is a command under execution.
+*/
+ boolean HasOpenCommand();
+ const string HasOpenCommand__doc__ = "Returns True if at this moment there is a command under execution.";
+/*! \brief Cancelation of the command
+
+ Cancels all actions declared within the command.
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ void AbortCommand(); // command management
+ const string AbortCommand__doc__ = "Cancels all actions declared within the command.";
+/*! \brief Undolimit
+
+ The number of actions which can be undone
+*/
+ attribute long UndoLimit;
+/*! \brief Undo method
+
+ Cancels all actions of the last command.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void Undo() raises (LockProtection);
+ const string Undo__doc__ = "Cancels all actions of the last command.";
+/*! \brief Redo method
+
+ Redoes all actions of the last command.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void Redo() raises (LockProtection);
+ const string Redo__doc__ = "Redoes all actions of the last command.";
+/*!
+ Returns True if at this moment there are any actions which can be canceled.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ boolean GetAvailableUndos();
+ const string GetAvailableUndos__doc__ = "Returns True if at this moment there are any actions which can be canceled.";
+/*!
+ Returns True if at this moment there are any actions which can be redone.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ boolean GetAvailableRedos();
+ const string GetAvailableRedos__doc__ = "Returns True if at this moment there are any actions which can be redone.";
+/*!
+ Sets the callback for addition of the given %SObject. Returns the previous callback.
+*/
+ Callback SetOnAddSObject(in Callback theCallback);
+ const string SetOnAddSObject__doc__ = "Sets the callback for addition of the given SObject.";
+/*!
+ Sets the callback for removal of the given %SObject. Returns the previous callback.
+*/
+ Callback SetOnRemoveSObject(in Callback theCallback);
+ const string SetOnRemoveSObject__doc__ = " Sets the callback for removal of the given SObject.";
+
+ };
+ const string StudyBuilder__doc__ = "The Study Builder Interface contains a set of methods used for adding and/or removing objects and attributes.";
+
+ //==========================================================================
+/*! \brief %Study Manager interface
+
+ The purpose of the Manager is to manipulate the %Studies. You will find in this
+ interface the methods to create, open,
+ close, and save a %Study. Since a %SALOME session is multi-document, you will
+ also find the methods allowing to navigate
+ through the collection of studies present in a session.
+*/
+ //==========================================================================
+
+ interface StudyManager
+ {
+/*!
+ Determines whether the server has already been loaded or not.
+*/
+ void ping();
+ const string ping__doc__ = "Determines whether the server has already been loaded or not.";
+
+/*! \brief Creation of a new %Study
+
+ Creates a new %Study with a definite name.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ Study NewStudy(in string study_name);
+ const string NewStudy__doc__ = "Creates a new study with a definite name.";
+
+/*! \brief Open a study
+
+ Reads and activates the structure of the study %Objects.
+ \warning This method doesn't activate the corba objects. Only a component can do it.
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ Study Open (in URL aStudyUrl) raises (SALOME::SALOME_Exception);
+ const string Open__doc__ = "Reads and activates the structure of the study objects.";
+
+/*! \brief Closing the study
+
+ Closes the study.
+*/
+ void Close(in Study aStudy);
+ const string Close__doc__ = "Closes the study.";
+/*! \brief Saving the study
+
+ Saves the study.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void Save(in Study aStudy, in boolean theMultiFile);
+ const string Save__doc__ = "Saves the study.";
+/*! \brief Saving the study in a file
+
+ Saves the study in a specified file.
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ void SaveAs(in URL aUrl, // if the file already exists
+ in Study aStudy,
+ in boolean theMultiFile); // overwrite (as option)
+ const string SaveAs__doc__ = "Saves the study in a specified file.";
+/*! \brief List of open studies.
+
+ Returns the list of open studies in the current session.
+*/
+ ListOfOpenStudies GetOpenStudies();
+ const string GetOpenStudies__doc__ = "Returns the list of open studies in the current session.";
+
+/*! \brief Getting a particular %Study picked by name
+
+ Activates a particular %Study
+ amongst the session collection picking it by name.
+*/
+ Study GetStudyByName (in string aStudyName);
+ const string GetStudyByName__doc__ = "Activates a particular study amongst the session collection picking it by name.";
+
+/*! \brief Getting a particular %Study picked by ID
+
+ Activates a particular %Study
+ amongst the session collection picking it by ID.
+*/
+ Study GetStudyByID (in short aStudyID);
+ const string GetStudyByID__doc__ = "Activates a particular study amongst the session collection picking it by ID.";
+
+ // copy/paste methods
+
+/*!
+ Returns True, if the given %SObject can be copied to the clipboard.
+*/
+ boolean CanCopy(in SObject theObject);
+ const string CanCopy__doc__ = "Returns True, if the given SObject can be copied to the clipboard.";
+/*!
+ Returns True, if the given %SObject is copied to the clipboard.
+*/
+ boolean Copy(in SObject theObject);
+ const string Copy__doc__ = "Returns True, if the given SObject is copied to the clipboard.";
+/*!
+ Returns True, if the object from the clipboard can be pasted to the given %SObject.
+*/
+ boolean CanPaste(in SObject theObject);
+ const string CanPaste__doc__ = "Returns True, if the object from the clipboard can be pasted to the given SObject.";
+/*!
+ Returns the %SObject in which the object from the clipboard was pasted to.
+*/
+ SObject Paste(in SObject theObject) raises (SALOMEDS::StudyBuilder::LockProtection);
+ const string Paste__doc__ = "Returns the SObject in which the object from the clipboard was pasted to.";
+ };
+ const string StudyManager__doc__ = "The purpose of the Manager is to manipulate the studies. \nThe StudyManager interface contains a set of methods to create, open,close and save a study.";
+
+
+ //==========================================================================
+/*! \brief %SObject interface
+
+ The objects in the %study are built by the %StudyBuilder. The %SObject interface
+ provides methods for elementary inquiries, like getting an object %ID or its attribuites.
+ \note
+ Tag of an item in %SALOME application is an integer value uniquely defining an item
+ in the tree-type data structure.
+ ID of an item is a description of item's position in the tree-type data structure.
+ ID is a list of tags and it has the following form: 0:2:1:1.
+*/
+ //==========================================================================
+
+ interface SObject
+ {
+/*! Name of the %SObject
+*/
+ attribute string Name; // equivalent to setName() & getName()
+/*! \brief Getting an object %ID
+
+ Returns ID of the %SObject.
+*/
+ ID GetID();
+ const string GetID__doc__ = "Returns ID of the SObject.";
+/*! \brief Acquisition of the father %Component of the %SObject
+
+ Returns the father %Component of the %SObject.
+*/
+ SComponent GetFatherComponent();
+ const string GetFatherComponent__doc__ = "Returns the father Component of the SObject.";
+/*! \brief Acquisition of the father %SObject of the %SObject
+
+ Returns the father %SObject of the given %SObject.
+*/
+ SObject GetFather();
+ const string GetFather__doc__ = "Returns the father SObject of the given SObject.";
+/*! \brief %Tag of %SObject
+
+ Returns the %tag of the %SObject.
+*/
+ short Tag();
+ const string Tag__doc__ = "Returns the tag of the SObject.";
+/*! \brief Looking for subobjects of an object.
+
+ Returns True if it finds a subobject of the %SObject with a definite tag.
+*/
+
+ boolean FindSubObject (in long atag, out SObject obj);
+ const string FindSubObject__doc__ = "Returns True if it finds a subobject of the SObject with a definite tag.";
+/*! \brief Looking for attributes of the %SObject
+
+ Returns True if it finds an attribute of a definite type of the %SObject.
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ boolean FindAttribute(out GenericAttribute anAttribute,
+ in string aTypeOfAttribute);
+ const string FindAttribute__doc__ = "Returns True if it finds an attribute of a definite type of the given SObject.";
+/*!
+ Returns the object which this %SObject refers to. It also returns True if it finds
+ this object.
+*/
+ boolean ReferencedObject(out SObject obj); // A REVOIR
+ const string ReferencedObject__doc__ = "Returns the object which this given SObject refers to. \nIt also returns True if it finds this object.";
+/*! \brief Getting all attributes of the %SObject
+
+ Returns the list of all attributes of the %SObject.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ ListOfAttributes GetAllAttributes();
+ const string GetAllAttributes__doc__ = "Returns the list of all attributes of the given SObject.";
+/*! \brief Returning the study
+
+ Returns the study containing the given %SObject.
+*/
+ Study GetStudy();
+ const string GetStudy__doc__ = "Returns the study containing the given SObject.";
+ };
+ const string SObject__doc__ = "The objects in the study are built by the StudyBuilder. \nThe SObject interface provides methods for elementary inquiries, \nlike getting an object ID or its attribuites.";
+
+
+ //==========================================================================
+/*! \brief %Generic attribute interface
+
+ %Generic attribute is a base interface for all attributes which inherit
+ its methods.
+*/
+ //==========================================================================
+ interface GenericAttribute
+ {
+/*! \brief Exception locking all changes
+
+ This exception locks all modifications in attributes.
+*/
+ exception LockProtection {};
+/*! \brief Method CheckLocked
+
+ Checks whether the %Study is protected for modifications.
+ \note This exception is raised only outside the transaction.
+*/
+ void CheckLocked() raises (LockProtection);
+ const string CheckLocked__doc__ = "Checks whether the study is protected for modifications.";
+ };
+ const string GenericAttribute__doc__ = "GenericAttribute is a base interface for all attributes which inherit its methods.";
+
+
+
+ //==========================================================================
+/*! \brief %SComponent interface
+
+ The %SComponent interface is a specialization of the %SObject interface.
+ It inherits the most of its methods from the %SObject interface.
+*/
+ //==========================================================================
+ interface SComponent : SObject
+ {
+/*! \brief Data type of the %SComponent
+
+ Returns the data type of the %SComponent.
+*/
+ string ComponentDataType();
+ const string ComponentDataType__doc__ = "Returns the data type of the SComponent.";
+/*!
+ Returns IOR of the according component.
+*/
+ boolean ComponentIOR (out ID theID); //returns True if there is an instance
+ //In this case ID identifies this one
+ const string ComponentIOR__doc__ = "Returns IOR of the according component.";
+ };
+ const string SComponent__doc__ = "The SComponent interface is a specialization of the SObject interface. \nIt inherits the most of its methods from the SObject interface.";
+
+
+ //==========================================================================
+/*! \brief %SComponentIterator interface
+
+ This interface contains the methods allowing to iterate over all components in the list.
+ The search is started from the first %SComponent in the list.
+*/
+ //==========================================================================
+ interface SComponentIterator
+ {
+/*! \brief Initialization of the Iterator
+
+Activates the %SComponentIterator.
+*/
+ void Init();
+ const string Init__doc__ = "Activates the SComponentIterator.";
+/*! \brief Method More
+
+ Returns True if there is one more %SComponent in the list.
+*/
+ boolean More();
+ const string More__doc__ = "Returns True if there is one more SComponent in the list.";
+/*! \brief Moving the iterator to the next %SComponent
+
+Moves the iterator to the next %SComponent in the list.
+*/
+ void Next();
+ const string Next__doc__ = "Moves the iterator to the next SComponent in the list.";
+/*!
+ Returns the %SComponent corresponding to the current %SComponent found by the iterator.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ SComponent Value();
+ const string Value__doc__ = "Returns the SComponent corresponding to the current SComponent found by the iterator.";
+ };
+ const string SComponentIterator__doc__ = "This interface contains the methods allowing to iterate over all components in the list. \nThe search is started from the first SComponent in the list.";
+
+ //==========================================================================
+/*! \brief %ChildIterator interface
+
+ This interface contains methods which allow to iterate over all child
+ levels.
+*/
+ //==========================================================================
+ interface ChildIterator
+ {
+/*! \brief Initialization of the Iterator.
+
+Activates the %ChildIterator.
+*/
+ void Init();
+ const string Init__doc__ = "Activates the ChildIterator.";
+/*! \brief Initialization of the Iterator for all child levels.
+
+Activates the %ChildIterator (if True) for all child levels.
+*/
+ void InitEx(in boolean allLevels);
+ const string InitEx__doc__ = "Activates the ChildIterator (if True) for all child levels.";
+/*! \brief Method More
+
+ Returns True if the %ChildIterator finds one more child level.
+*/
+ boolean More();
+ const string More__doc__ = "Returns True if the ChildIterator finds one more child level.";
+/*!
+ Passes the iterator to the next level.
+*/
+ void Next();
+ const string Next__doc__ = "Passes the iterator to the next level.";
+/*!
+ Returns the %SObject corresponding to the current object found by the iterator.
+*/
+ SObject Value();
+ const string Value__doc__ = "Returns the SObject corresponding to the current object found by the iterator.";
+ };
+ const string ChildIterator__doc__ = "This interface contains methods which allow to iterate over all child levels.";
+
+ //==========================================================================
+ //==========================================================================
+/*! \brief Interface of the %UseCaseIterator.
+
+ This interface contains a set of methods used for iteration over the objects in the use case.
+*/
+ interface UseCaseIterator
+ {
+/*! \brief Initialization of the Iterator.
+
+Activates the %UseCaseIterator. If allLevels is True the Iterator is activated for all subobjects.
+*/
+ void Init(in boolean allLevels);
+ const string Init__doc__ = "Activates the UseCaseIterator. \nIf the value of the parameter allLevels is True the Iterator is activated for all subobjects.";
+/*! \brief Method More
+
+ Returns True if the %UseCaseIterator finds one more object.
+*/
+ boolean More();
+ const string More__doc__ = "Returns True if the UseCaseIterator finds one more object.";
+/*!
+ Passes the iterator to the next object.
+*/
+ void Next();
+ const string Next__doc__ = "Passes the iterator to the next object.";
+/*!
+ Returns the %SObject corresponding to the current object found by the Iterator.
+*/
+ SObject Value();
+ const string Value__doc__ = "Returns the SObject corresponding to the current object found by the Iterator.";
+ };
+ const string UseCaseIterator__doc__ = "This interface contains a set of methods used for \niteration over the objects in the use case.";
+
+ //==========================================================================
+ //==========================================================================
+/*! \brief Interface of the %UseCaseBuilder
+
+ Use case in the study represents a user-managed subtree, containing all or some of the objects which exist in the study.
+ The %UseCaseBuilder interface contains a set of methods used for management of the use case in the study.
+*/
+ interface UseCaseBuilder
+ {
+/*!
+ Adds to the use case an object theObject as a child of the current object of the use case.
+*/
+ boolean Append(in SObject theObject);
+ const string Append__doc__ = "Adds to the use case an object as a child of the current object of the use case.";
+/*!
+ Removes an object theObject from the use case.
+*/
+ boolean Remove(in SObject theObject);
+ const string Remove__doc__ = "Removes an object from the use case.";
+/*!
+ Adds a child object theObject to the given father theFather object in the use case.
+*/
+ boolean AppendTo(in SObject theFather, in SObject theObject);
+ const string AppendTo__doc__ = "Adds a child object to the given father object in the use case.";
+/*!
+ Inserts in the use case the object theFirst before the object theNext.
+*/
+ boolean InsertBefore(in SObject theFirst, in SObject theNext);
+ const string InsertBefore__doc__ = "Inserts in the use case an object before another object.";
+/*!
+ Sets the current object of the use case.
+*/
+ boolean SetCurrentObject(in SObject theObject);
+ const string SetCurrentObject__doc__ = "Sets the current object of the use case.";
+/*!
+ Makes the root object to be the current object of the use case.
+*/
+ boolean SetRootCurrent();
+ const string SetRootCurrent__doc__ = "Makes the root object to be the current object of the use case.";
+/*!
+ Returns True if the given object theObject of the use case has child objects.
+*/
+ boolean HasChildren(in SObject theObject);
+ const string HasChildren__doc__ = "Returns True if the given object of the use case has child objects.";
+/*!
+ Sets the name of the use case.
+*/
+ boolean SetName(in string theName);
+ const string SetName__doc__ = "Sets the name of the use case.";
+/*!
+ Gets the name of the use case.
+*/
+ string GetName();
+ const string GetName__doc__ = "Gets the name of the use case.";
+/*!
+ Returns True if the given object theObject represents a use case.
+*/
+ boolean IsUseCase(in SObject theObject);
+ const string IsUseCase__doc__ = "Returns True if the given object represents a use case.";
+/*!
+ Gets the current object of the use case.
+*/
+ SObject GetCurrentObject();
+ const string GetCurrentObject__doc__ = "Gets the current object of the use case.";
+/*!
+ Creates a new use case in the use case browser.
+*/
+ SObject AddUseCase(in string theName);
+ const string AddUseCase__doc__ = "Creates a new use case in the use case browser.";
+/*!
+ Returns the %UseCaseIterator for the given object theObject in the use case.
+*/
+ UseCaseIterator GetUseCaseIterator(in SObject theObject);
+ const string GetUseCaseIterator__doc__ = "Returns the UseCaseIterator for the given object in the use case.";
+ };
+ const string UseCaseBuilder__doc__ = "The UseCaseBuilder interface contains a set of methods \nused for management of the use case in the study.";
+ //==========================================================================
+ //==========================================================================
+/*! \brief The callback interface
+
+ The %StudyBuilder can be created with the method NewBuilder. While invocation of this method a new object of the class Callback is created
+ and this object is assigned to the newly created Builder as callback which should be called when adding and removing of the ojects.
+*/
+ interface Callback
+ {
+/*!
+ Invokes the corresponding method Append of the %UseCaseBuilder.
+*/
+ void OnAddSObject(in SObject theObject);
+ const string OnAddSObject__doc__ = "Invokes the corresponding method Append of the UseCaseBuilder.";
+/*!
+ Invokes the corresponding method Remove of the %UseCaseBuilder.
+*/
+ void OnRemoveSObject(in SObject theObject);
+ const string OnRemoveSObject__doc__ = "Invokes the corresponding method Remove of the UseCaseBuilder.";
+ };
+ const string Callback__doc__ = "The callback interface contains a set of methods which are called \nwhen adding or removing of the objects by the StudyBuilder.";
+
+ //==========================================================================
+/*! \brief %Driver interface
+
+ This interface contains a set of methods used for the management
+ of the object produced in the %study by a component.
+*/
+ //==========================================================================
+ interface Driver
+ {
+
+ /*! \brief Saving the data.
+
+ This method is called by the StudyManager when saving a study.
+ \param theComponent %SComponent corresponding to this Component
+ \return A byte stream TMPFile that contains all saved data
+
+ See also an example of this method usage in batchmode of %SALOME application.
+
+ */
+
+
+ TMPFile Save(in SComponent theComponent, in string theURL, in boolean isMultiFile);
+ const string Save__doc__ = "This method is called by the StudyManager when saving a study.";
+
+
+ /*! \brief Loading the data.
+
+ This method is called by the StudyManager when opening a study.
+ \param theComponent %SComponent corresponding to this Component
+ \param theStream The file which contains all data saved by the component on Save method
+ */
+
+ boolean Load(in SComponent theComponent, in TMPFile theStream, in string theURL, in boolean isMultiFile);
+ const string Load__doc__ = "This method is called by the StudyManager when opening a study.";
+
+
+ /*! \brief Closing of the study
+
+ This method Close is called by the StudyManager when closing a study.
+
+ */
+
+ void Close (in SComponent aSComponent);
+ const string Close__doc__ = "This method Close is called by the StudyManager when closing a study.";
+ //void Close ( in string aIORSComponent);
+
+ /*! \brief The type of the data
+
+ Returns the type of data produced by the Component in the study.
+ */
+
+ string ComponentDataType();
+ const string ComponentDataType__doc__ = "Returns the type of data produced by the Component in the study.";
+
+ // Driver Transient -> persistent called for each object in study
+/*!
+ Transforms IOR into PersistentID of the object. It is called for each
+ object in the %study.
+*/
+ string IORToLocalPersistentID (in SObject theSObject, in string IORString, in boolean isMultiFile);
+ const string IORToLocalPersistentID__doc__ = "Transforms IOR into PersistentID of the object.";
+/*!
+ Transforms PersistentID into IOR of the object. It is called for each
+ object in the %study.
+*/
+ string LocalPersistentIDToIOR (in SObject theSObject, in string aLocalPersistentID, in boolean isMultiFile)
+ raises (SALOME::SALOME_Exception);
+ const string LocalPersistentIDToIOR__doc__ = "Transforms PersistentID into IOR of the object.";
+
+ // Publishing in the study
+/*! \brief Publishing in the study
+
+ Returns True if the given %Component can publish the %object in the %study.
+*/
+ boolean CanPublishInStudy(in Object theIOR) raises (SALOME::SALOME_Exception);
+ const string CanPublishInStudy__doc__ = "Returns True if the given Component can publish the object in the study.";
+/*! \brief Publishing in the study
+
+ Publishes the given object in the %study, using the algorithm of this component.
+ \param theStudy The %study in which the object is published
+ \param theSObject If this parameter is null the object is published for the first time. Otherwise
+ this parameter should contain a reference to the object published earlier
+ \param theObject The object which is published
+ \param theName The name of the published object. If this parameter is empty, the name is generated
+ automatically by the component.
+*/
+ SObject PublishInStudy(in Study theStudy, in SObject theSObject, in Object theObject, in string theName);
+ const string PublishInStudy__doc__ = "Publishes the given object in the study, using the algorithm of this component.";
+
+ // copy/paste methods
+
+/*!
+ Returns True, if the given %SObject can be copied to the clipboard.
+*/
+ boolean CanCopy(in SObject theObject);
+ const string CanCopy__doc__ = "Returns True, if the given SObject can be copied to the clipboard.";
+/*!
+ Returns the object %ID and the %TMPFile of the object from the given %SObject.
+*/
+ TMPFile CopyFrom(in SObject theObject, out long theObjectID);
+ const string CopyFrom__doc__ = "Returns the object ID and the TMPFile of the object from the given SObject.";
+/*!
+ Returns True, if the component can paste the object with given %ID of the component with name theComponentName.
+*/
+ boolean CanPaste(in string theComponentName, in long theObjectID);
+ const string CanPaste__doc__ = "Returns True, if the component can paste the object with given ID of the component with name theComponentName.";
+/*!
+ Returns the %SObject of the pasted object.
+*/
+ SObject PasteInto(in TMPFile theStream, in long theObjectID, in SObject theObject);
+ const string PasteInto__doc__ = "Returns the SObject of the pasted object.";
+
+ };
+ const string Driver__doc__ = "This interface contains a set of methods used for the management \nof the object produced in the study by a component.";
+};
+
+#endif
diff --git a/idl/SALOMEDS_Attributes.idl b/idl/SALOMEDS_Attributes.idl
new file mode 100644
index 000000000..c87838610
--- /dev/null
+++ b/idl/SALOMEDS_Attributes.idl
@@ -0,0 +1,1356 @@
+//=====================================================
+// File : SALOMEDS.idl
+// Created : Thu Jul 4 19:25:39 2002
+// Author : Yves FRICAUD
+// Project : SALOME
+// Copyright : Open CASCADE 2002
+// $Header$
+//=====================================================
+//The following attributes can be assigned to SObject
+//=====================================================
+/*! \file SALOMEDS_Attributes.idl This file contains a set of interfaces
+ for the attributes which can be assigned to %SObject
+*/
+#ifndef _SALOMEDS_AttributesIDL_
+#define _SALOMEDS_AttributesIDL_
+
+#include "SALOMEDS.idl"
+
+module SALOMEDS
+{
+/*! Sequence of double values
+*/
+ typedef sequence DoubleSeq;
+/*! Sequence of long values
+*/
+ typedef sequence LongSeq;
+/*! Sequence of string values
+*/
+ typedef sequence StringSeq;
+/*! \struct Color
+ This structure stores a set of elements defining the color based on RGB.
+*/
+ struct Color {
+/*! Red color
+*/
+ double R;
+/*! Green color
+*/
+ double G;
+/*! Blue color
+*/
+ double B;
+ };
+ //==========================================================================
+/*! \brief Attribute allowing to store a real value
+
+ Attribute allowing to store a real value
+*/
+ //==========================================================================
+ interface AttributeReal : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute.
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ double Value();
+ const string Value__doc__ = "Returns the value of this attribute.";
+/*!
+ Sets the value of this attribute.
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ void SetValue(in double value);
+ const string SetValue__doc__ = "Sets the value of this attribute.";
+ };
+ const string AttributeReal__doc__ = "Attribute allowing to store a real value.";
+ //==========================================================================
+/*! \brief Attribute allowing to store an integer value
+
+ Attribute allowing to store an integer value
+*/
+ //==========================================================================
+ interface AttributeInteger : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ long Value();
+ const string Value__doc__ = "Returns the value of this attribute.";
+/*!
+ Sets the value of this attribute
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ void SetValue(in long value);
+ const string SetValue__doc__ = "Sets the value of this attribute.";
+ };
+ const string AttributeInteger__doc__ = "Attribute allowing to store an integer value.";
+ //==========================================================================
+/*! \brief Attribute - sequence of real values
+
+ Attribute - sequence of real values, indexing from 1 (like in CASCADE).
+*/
+ //==========================================================================
+ interface AttributeSequenceOfReal : GenericAttribute
+ {
+/*!
+ Initialization of the attribute with initial data.
+ \param other Initially assigned sequence of real numbers.
+*/
+ void Assign (in DoubleSeq other);
+ const string Assign__doc__ = "Initialization of the attribute with initial data.";
+/*!
+ Returns the sequence of real numbers stored in the attribute.
+*/
+ DoubleSeq CorbaSequence();
+ const string CorbaSequence__doc__ = "Returns the sequence of real numbers stored in the attribute.";
+/*!
+ Adds to the end of the sequence a real number.
+ \param value A real number added to the sequence.
+
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ void Add (in double value);
+ const string Add__doc__ = "Adds to the end of the sequence a real number.";
+/*!
+ Removes a real number with a definite index
+ from the sequence of real numbers stored in the Attribute.
+*/
+ void Remove(in long index);
+ const string Remove__doc__ = "Removes a real number with a definite index from the sequence of real numbers stored in the attribute.";
+/*!
+ Substitutes a real number with a definite index for another real number.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void ChangeValue(in long index, in double value);
+ const string ChangeValue__doc__ = "Substitutes a real number with a definite index for another real number.";
+/*!
+ Returns a real number with a definite index
+ in the sequence of real numbers stored in the Attribute.
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ double Value(in short index);
+ const string Value__doc__ = "Returns a real number with a definite index in the \nsequence of real numbers stored in the attribute.";
+/*!
+ Returns the length of the sequence of real numbers stored in the Attribute.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ long Length();
+ const string Length__doc__ = "Returns the length of the sequence of real numbers stored in the attribute.";
+ };
+ const string AttributeSequenceOfReal__doc__ = "Attribute - sequence of real values.";
+ //==========================================================================
+/*! \brief Attribute - sequence of integer
+
+ Attribute - sequence of integer, indexing from 1 (like in CASCADE)
+*/
+ //==========================================================================
+ interface AttributeSequenceOfInteger : GenericAttribute
+ {
+/*!
+ Initialization of the attribute with initial data.
+ \param other Initially assigned sequence of integer numbers.
+*/
+ void Assign (in LongSeq other);
+ const string Assign__doc__ = "Initialization of the attribute with initial data.";
+/*!
+ Returns the sequence of integer numbers stored in the Attribute.
+*/
+ LongSeq CorbaSequence();
+ const string CorbaSequence__doc__ = "Returns the sequence of integer numbers stored in the attribute.";
+/*!
+ Adds to the end of the sequence an integer number.
+ \param value An integer number added to the sequence.
+
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void Add (in long value);
+ const string Add__doc__ = "Adds to the end of the sequence an integer number.";
+/*!
+ Removes an integer number with a definite index
+ from the sequence of integer numbers stored in the Attribute.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void Remove(in long index);
+ const string Remove__doc__ = "Removes an integer number with a definite index from the sequence of integer numbers stored in the attribute.";
+/*!
+ Substitutes an integer number with a definite index for another integer number.
+*/
+ void ChangeValue(in long index, in long value);
+ const string ChangeValue__doc__ = "Substitutes an integer number with a definite index for another integer number.";
+/*!
+ Returns an integer number with a definite index
+ in the sequence of integer numbers stored in the Attribute.
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ long Value(in short index);
+ const string Value__doc__ = "Returns an integer number with a definite index in the \nsequence of integer numbers stored in the attribute.";
+/*!
+ Returns the length of the sequence of integer numbers stored in the Attribute.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ long Length();
+ const string Length__doc__ = "Returns the length of the sequence of integer numbers stored in the attribute.";
+ };
+
+ //==========================================================================
+/*! \brief Name attribute
+
+ This attribute stores a string value, which corresponds to the name of the %SObject
+ or to the name of corresponding object.
+*/
+ //==========================================================================
+
+ interface AttributeName : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ string Value();
+ const string Value__doc__ = "Returns the value of this attribute.";
+/*!
+ Sets the value of this attribute
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ void SetValue(in string value);
+ const string SetValue__doc__ = "Sets the value of this attribute.";
+ };
+ const string AttributeName__doc__ = "This attribute stores a string value, which corresponds to the name of the SObject \nor to the name of corresponding object.";
+
+ //==========================================================================
+/*! \brief Comment attribute
+
+ This attribute stores a string value containing supplementary information about
+ the %SObject. In particular it contains the data type of the %SComponent.
+*/
+ //==========================================================================
+ interface AttributeComment : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ string Value();
+ const string Value__doc__ = "Returns the value of this attribute.";
+/*!
+ Sets the value of this attribute
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ void SetValue(in string value);
+ const string SetValue__doc__ = "Sets the value of this attribute.";
+ };
+ const string AttributeComment__doc__ = "This attribute stores a string value containing supplementary information about \nthe SObject. In particular it contains the data type of the SComponent.";
+ //==========================================================================
+/*! \brief IOR attribute
+
+ This attribute stores a string value identifying a runtime object.In particular
+ it contains CORBA Interoperable Object Reference.
+*/
+ //==========================================================================
+ interface AttributeIOR : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ string Value();
+ const string Value__doc__ = "Returns the value of this attribute.";
+/*!
+ Sets the value of this attribute
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ void SetValue(in string value);
+ const string SetValue__doc__ = "Sets the value of this attribute.";
+ };
+ const string AttributeIOR__doc__ = "This attribute stores a string value identifying a runtime object.\nIn particular it contains CORBA Interoperable Object Reference.";
+
+ //==========================================================================
+/*! \brief Persistent reference attribute
+
+ This attribute stores a persistent identifier of the object.
+*/
+ //==========================================================================
+ interface AttributePersistentRef : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ string Value();
+ const string Value__doc__ = "Returns the value of this attribute.";
+/*!
+ Sets the value of this attribute
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ void SetValue(in string value);
+ const string SetValue__doc__ = "Sets the value of this attribute.";
+ };
+ const string AttributePersistentRef__doc__ = "This attribute stores a persistent identifier of the object.";
+
+ //==========================================================================
+ //Below the list of presentation attributes for display study tree in browser
+ //==========================================================================
+
+
+ //==========================================================================
+/*! \brief Drawable flag Attribute.
+
+ This is a presentation attribute necessary for display of the study tree in the browser.
+ The item associated to SObject is created/displayed if TRUE.
+*/
+ //==========================================================================
+ interface AttributeDrawable : GenericAttribute
+ {
+/*!
+ Returns TRUE if the item is drawable (as it is by default) and FALSE if it isn't.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ boolean IsDrawable();
+ const string IsDrawable__doc__ = "Returns TRUE if the item is drawable (as it is by default) and FALSE if it isn't.";
+/*!
+Sets the items to be drawable if value is TRUE (the default) or not to be selectable if valueis FALSE.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void SetDrawable(in boolean value);
+ const string SetDrawable__doc__ = "Sets the items to be drawable if value is TRUE (the default) or not to be selectable if value is FALSE.";
+ };
+ const string AttributeDrawable__doc__ = "This is a presentation attribute necessary for display of the study tree in the browser. \nThe item associated to SObject is created/displayed if TRUE.";
+
+ //==========================================================================
+/*! \brief Selectable flag Attribute.
+
+ This is a presentation attribute necessary for display of the study tree in the browser.
+ The item is selectable by %SALOME selection mechanism if TRUE.
+*/
+ //==========================================================================
+ interface AttributeSelectable : GenericAttribute
+ {
+/*!
+ Returns TRUE if the item is selectable (as it is by default) and FALSE if it isn't.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ boolean IsSelectable();
+ const string IsSelectable__doc__ = "Returns TRUE if the item is selectable (as it is by default) and FALSE if it isn't.";
+/*!
+Sets the items to be selectable if value is TRUE (the default) or not to be selectable if valueis FALSE.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void SetSelectable(in boolean value);
+ const string SetSelectable__doc__ = "Sets the items to be selectable if value is TRUE (the default) or not to be selectable if value is FALSE.";
+ };
+ const string AttributeSelectable__doc__ = "This is a presentation attribute necessary for display of the study tree in the browser. \nThe item is selectable by SALOME selection mechanism if TRUE.";
+
+ //==========================================================================
+/*! \brief Expandable flag Attribute.
+
+ This is a presentation attribute necessary for display of the study tree in the browser.
+ It sets this item to be expandable even if it has no children if value is TRUE. If value is FALSE
+ expandable only if it has children.
+*/
+ //==========================================================================
+ interface AttributeExpandable : GenericAttribute
+ {
+/*!
+ Returns TRUE if this item is expandable even when it has no children.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ boolean IsExpandable();
+ const string IsExpandable__doc__ = "Returns TRUE if this item is expandable even when it has no children.";
+/*!
+ Sets this item to be expandable even if it has no children if value is TRUE, and to be
+ expandable only if it has children if value is FALSE (the default).
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void SetExpandable(in boolean value);
+ const string SetExpandable__doc__ = "Sets this item to be expandable even if it has no children if value is TRUE, and to be \nexpandable only if it has children if value is FALSE (the default).";
+ };
+ const string AttributeExpandable__doc__ = "This is a presentation attribute necessary for display of the study tree in the browser. \nIt sets this item to be expandable even if it has no children if value is TRUE. \nIf value is FALSE expandable only if it has children.";
+
+ //==========================================================================
+/*! \brief Opened flag Attribute.
+
+ This is a presentation attribute necessary for display of the study tree in the browser.
+ It sets this item to be open (its children are visible) if bool is TRUE, and to be closed (its children
+ are not visible) if bool is FALSE.
+*/
+ //==========================================================================
+ interface AttributeOpened : GenericAttribute
+ {
+/*!
+ Returns TRUE if this item is open (its children are visible) and FALSE if it isn't.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ boolean IsOpened();
+ const string IsOpened__doc__ = "Returns TRUE if this item is open (its children are visible) and FALSE if it isn't.";
+/*!
+ Sets this item to be open (its children are visible) if value is TRUE, and to be closed
+(its children are not visible) if value is FALSE.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void SetOpened(in boolean value);
+ const string SetOpened__doc__ = "Sets this item to be open (its children are visible) if value is TRUE, and to be closed \n(its children are not visible) if value is FALSE.";
+ };
+ const string AttributeOpened__doc__ = "This is a presentation attribute necessary for display of the study tree in the browser. \nIt sets this item to be open (its children are visible) if bool is TRUE, and to be closed (its children \nare not visible) if bool is FALSE.";
+ //==========================================================================
+/*! \brief TextColorAttribute.
+
+ This attribute sets the color of an item.
+*/
+ //==========================================================================
+ interface AttributeTextColor : GenericAttribute
+ {
+/*!
+ Returns the color of an item.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ Color TextColor();
+ const string TextColor__doc__ = "Returns the color of an item.";
+/*!
+ Sets the color of an item.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void SetTextColor(in Color value);
+ const string SetTextColor__doc__ = "Sets the color of an item.";
+ };
+ const string AttributeTextColor__doc__ = "This attribute sets the color of an item.";
+
+ //==========================================================================
+ /*! \brief TextHighlightColorAttribute.
+
+ This attribute sets the highlight color of an item.
+*/
+ //==========================================================================
+ interface AttributeTextHighlightColor : GenericAttribute
+ {
+/*!
+ Returns the highlight color of an item.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ Color TextHighlightColor();
+ const string TextHighlightColor__doc__ = "Returns the highlight color of an item.";
+/*!
+ Sets the highlight color of an item.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void SetTextHighlightColor(in Color value);
+ const string SetTextHighlightColor__doc__ = "Sets the highlight color of an item.";
+ };
+ const string AttributeTextHighlightColor__doc__ = "This attribute sets the highlight color of an item.";
+ //==========================================================================
+/*! \brief PixMapAttribute.
+
+ This attribute stores an icon which is put before the name of an item.
+*/
+ //==========================================================================
+ interface AttributePixMap : GenericAttribute
+ {
+/*!
+ Returns True if there is an icon before the name of the item.
+*/
+ boolean HasPixMap();
+ const string HasPixMap__doc__ = "Returns True if there is an icon before the name of the item.";
+/*!
+ Returns the name of the icon.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ string GetPixMap();
+ const string GetPixMap__doc__ = "Returns the name of the icon.";
+/*!
+ Sets the name of the icon.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void SetPixMap(in string value);
+ const string SetPixMap__doc__ = "Sets the name of the icon.";
+ };
+ const string AttributePixMap__doc__ = "This attribute stores an icon which is put before the name of an item.";
+
+ //==========================================================================
+/*! \brief TreeNodeAttribute.
+
+ A set of these attributes on the %SObjects of the %study forms an inner auxiliary
+ tree whith its own structure and identifier. The quantity of such trees with different
+ identifiers can be arbitrary.
+ See also an example of usage of the methods of this interface in batchmode of %SALOME application.
+
+*/
+ //==========================================================================
+ interface AttributeTreeNode : GenericAttribute
+ {
+/*!
+ Sets the father TreeNode to this TreeNode.
+*/
+ void SetFather(in AttributeTreeNode value);
+ const string SetFather__doc__ = "Sets the father TreeNode to this TreeNode.";
+/*!
+ Returns True if there is the father TreeNode of this TreeNode.
+*/
+ boolean HasFather();
+ const string HasFather__doc__ = "Returns True if there is the father TreeNode of this TreeNode.";
+/*!
+ Returns the father Treenode of this TreeNode.
+*/
+ AttributeTreeNode GetFather();
+ const string GetFather__doc__ = "Returns the father Treenode of this TreeNode.";
+/*!
+ Sets the previous brother TreeNode to this treeNode.
+*/
+ void SetPrevious(in AttributeTreeNode value);
+ const string SetPrevious__doc__ = "Sets the previous brother TreeNode to this treeNode.";
+/*!
+ Returns True if there is the previous brother TreeNode of this TreeNode.
+*/
+ boolean HasPrevious();
+ const string HasPrevious__doc__ = "Returns True if there is the previous brother TreeNode of this TreeNode.";
+/*!
+ Returns the previous brother TreeNode of this TreeNode.
+*/
+ AttributeTreeNode GetPrevious();
+ const string GetPrevious__doc__ = "Returns the previous brother TreeNode of this TreeNode.";
+/*!
+ Sets the next brother TreeNode to this treeNode.
+*/
+ void SetNext(in AttributeTreeNode value);
+ const string SetNext__doc__ = "Sets the next brother TreeNode to this treeNode.";
+/*!
+ Returns True if there is the next brother TreeNode of this TreeNode.
+*/
+ boolean HasNext();
+ const string HasNext__doc__ = "Returns True if there is the next brother TreeNode of this TreeNode.";
+/*!
+ Returns the previous brother TreeNode of this TreeNode.
+*/
+ AttributeTreeNode GetNext();
+ const string GetNext__doc__ = "Returns the previous brother TreeNode of this TreeNode.";
+/*!
+ Sets the first child TreeNode to this treeNode.
+*/
+ void SetFirst(in AttributeTreeNode value);
+ const string SetFirst__doc__ = "Sets the first child TreeNode to this treeNode.";
+/*!
+ Returns True if there is the first child TreeNode of this TreeNode.
+*/
+ boolean HasFirst();
+ const string HasFirst__doc__ = "Returns True if there is the first child TreeNode of this TreeNode.";
+/*!
+ Returns the first child TreeNode of this TreeNode.
+*/
+ AttributeTreeNode GetFirst();
+ const string GetFirst__doc__ = "Returns the first child TreeNode of this TreeNode.";
+/*!
+ Sets ID of the tree. TreeNodes of one tree have the same ID.
+*/
+ void SetTreeID(in string value);
+ const string SetTreeID__doc__ = "Sets ID of the tree. TreeNodes of one tree have the same ID.";
+/*!
+ Gets ID of the tree.
+*/
+ string GetTreeID();
+ const string GetTreeID__doc__ = "Gets ID of the tree.";
+
+/*!
+ Adds a child TreeNode to the end of the list of children of this Treenode.
+*/
+ void Append(in AttributeTreeNode value);
+ const string Append__doc__ = "Adds a child TreeNode to the end of the list of children of this Treenode.";
+/*!
+ Adds a child TreeNode to the beginning of the list of children of this Treenode.
+
+*/
+ void Prepend(in AttributeTreeNode value);
+ const string Prepend__doc__ = "Adds a child TreeNode to the beginning of the list of children of this Treenode.";
+/*!
+ Adds a brother TreeNode before this Treenode.
+ In this case the both TreeNodes will belong to the same father.
+*/
+ void InsertBefore(in AttributeTreeNode value);
+ const string InsertBefore__doc__ = "Adds a brother TreeNode before this Treenode. In this case the both TreeNodes will belong to the same father.";
+/*!
+ Adds a brother TreeNode after this Treenode.
+ In this case the both TreeNodes will belong to the same father.
+*/
+ void InsertAfter(in AttributeTreeNode value);
+ const string InsertAfter__doc__ = "Adds a brother TreeNode after this Treenode. In this case the both TreeNodes will belong to the same father.";
+/*!
+ Deletes a TreeNode.
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void Remove();
+ const string Remove__doc__ = "Deletes a TreeNode.";
+
+/*!
+ Returns the depth of the TreeNode in the
+ structure, it means the number of fathers of the given TreeNode.
+ (i.e.: the depth of the root TreeNode is 0).
+*/
+ long Depth();
+ const string Depth__doc__ = "Returns the depth of the TreeNode in the structure, it means the number of fathers of the given TreeNode. \n(i.e.: the depth of the root TreeNode is 0).";
+/*!
+ Returns True if it is a root TreeNode.
+*/
+ boolean IsRoot();
+ const string IsRoot__doc__ = "Returns True if it is a root TreeNode.";
+/*!
+ Returns True if this TreeNode is a descendant of the TreeNode.
+*/
+ boolean IsDescendant(in AttributeTreeNode value);
+ const string IsDescendant__doc__ = "Returns True if this TreeNode is a descendant of the TreeNode.";
+/*!
+ Returns True if this TreeNode is the father of the TreeNode.
+*/
+ boolean IsFather(in AttributeTreeNode value);
+ const string IsFather__doc__ = "Returns True if this TreeNode is the father of the TreeNode.";
+/*!
+ Returns True if this TreeNode is a child of the TreeNode.
+*/
+ boolean IsChild(in AttributeTreeNode value);
+ const string IsChild__doc__ = "Returns True if this TreeNode is a child of the TreeNode.";
+/*!
+ Returns ID of the according %SObject.
+*/
+ string Label();
+ const string Label__doc__ = "Returns ID of the according SObject.";
+ };
+ const string AttributeTreeNode__doc__ = "A set of these attributes on the SObjects of the study forms an inner auxiliary \ntree whith its own structure and identifier. The quantity of such trees with different \nidentifiers can be arbitrary.";
+ //==========================================================================
+/*! \brief LocalID attribute
+
+ Attribute describing the link between a %SObject and a local object in the component.
+*/
+ //==========================================================================
+ interface AttributeLocalID : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute.
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ long Value();
+ const string Value__doc__ = "Returns the value of this attribute.";
+/*!
+ Sets the value of this attribute.
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ void SetValue(in long value);
+ const string SetValue__doc__ = "Sets the value of this attribute.";
+ };
+ const string AttributeLocalID__doc__ = "Attribute describing the link between a SObject and a local object in the component.";
+
+ //==========================================================================
+/*! \brief Attribute storing GUID
+
+ Attribute allowing to store GUID
+*/
+ //==========================================================================
+ interface AttributeUserID : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ string Value();
+ const string Value__doc__ = "Returns the value of this attribute.";
+/*!
+ Sets the value of this attribute
+ See also an example of this method usage in batchmode of %SALOME application.
+*/
+ void SetValue(in string value);
+ const string SetValue__doc__ = "Sets the value of this attribute.";
+ };
+ const string AttributeUserID__doc__ = "Attribute allowing to store GUID.";
+
+ //==========================================================================
+/*! \brief %AttributeTarget iterface
+
+ This attribute stores the list of all %SObjects that refer
+ to this %SObject. This attribute is used for inner purposes of the application.
+ It is also needed for optimization.
+*/
+ //==========================================================================
+
+ interface AttributeTarget : GenericAttribute
+ {
+/*!
+ Adds a %SObject to the list of %SObjects which refer to this %SObject.
+
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void Add(in SObject anObject);
+ const string Add__doc__ = "Adds a SObject to the list of SObjects which refer to this SObject.";
+/*!
+ Returns the list of %SObjects which refer to this %SObject.
+*/
+ SALOMEDS::Study::ListOfSObject Get();
+ const string Get__doc__ = "Returns the list of SObjects which refer to this SObject.";
+/*!
+ Deletes a %SObject from the list of %SObjects which refer to this %SObject.
+
+ See also an example of this method usage in batchmode of %SALOME application.
+
+*/
+ void Remove(in SObject anObject);
+ const string Remove__doc__ = "Deletes a SObject from the list of SObjects which refer to this SObject.";
+ };
+ const string AttributeTarget__doc__ = "Adds a SObject to the list of SObjects which refer to this SObject.";
+ //==========================================================================
+ /*! \brief %AttributeTableOfInteger interface
+
+ This attribute allows to store a table of integers (indexing from 1 like in CASCADE)
+ and string titles of this table, of each row, of each column.
+ See also an example of usage of these methods in batchmode of %SALOME application.
+
+*/
+ //==========================================================================
+
+ interface AttributeTableOfInteger : GenericAttribute
+ {
+/*!
+ This exception is raised when an incorrect index is passed as parameter.
+*/
+ exception IncorrectIndex {};
+/*!
+ This exception is raised when an incorrect length of the argument is passed as parameter.
+*/
+ exception IncorrectArgumentLength {};
+
+ // titles: for table, for each row, for each column
+/*!
+ Sets the title of the table.
+*/
+ void SetTitle(in string theTitle);
+ const string SetTitle__doc__ = "Sets the title of the table.";
+/*!
+ Returns the title of the table.
+*/
+ string GetTitle();
+ const string GetTitle__doc__ = "Returns the title of the table.";
+/*!
+ Sets the title of a row with a definite index.
+*/
+ void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+ const string SetRowTitle__doc__ = "Sets the title of a row with a definite index.";
+/*!
+ Sets the titles for all rows of the table.
+*/
+ void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+ const string SetRowTitles__doc__ = "Sets the titles for all rows of the table.";
+/*!
+ Returns the titles of all rows of the table.
+*/
+ StringSeq GetRowTitles();
+ const string GetRowTitles__doc__ = "Returns the titles of all rows of the table.";
+/*!
+ Sets the title of a column with a definite index.
+*/
+ void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+ const string SetColumnTitle__doc__ = "Sets the title of a column with a definite index.";
+/*!
+ Sets the titles for all columns of the table.
+*/
+ void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+ const string SetColumnTitles__doc__ = "Sets the titles for all columns of the table.";
+/*!
+ Returns the titles of all columns of the table.
+*/
+ StringSeq GetColumnTitles();
+ const string GetColumnTitles__doc__ = "Returns the titles of all columns of the table.";
+
+ //Rows units
+/*!
+ Sets the unit of a row with a definite index.
+*/
+ void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
+ const string SetRowUnit__doc__ = "Sets the unit of a row with a definite index.";
+/*!
+ Sets the units for all rows of the table.
+*/
+ void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
+ const string SetRowUnits__doc__ = "Sets the units for all rows of the table.";
+/*!
+ Returns the units of all rows of the table.
+*/
+ StringSeq GetRowUnits();
+ const string GetRowUnits__doc__ = "Returns the units of all rows of the table.";
+
+ // table information
+/*!
+ Returns the number of rows of the table.
+*/
+ long GetNbRows();
+ const string GetNbRows__doc__ = "Returns the number of rows of the table.";
+/*!
+ Returns the number of columns of the table.
+*/
+ long GetNbColumns();
+ const string GetNbColumns__doc__ = "Returns the number of columns of the table.";
+
+ // operations with rows
+/*!
+ Adds a row to the end of the table.
+*/
+ void AddRow(in LongSeq theData) raises(IncorrectArgumentLength);
+ const string AddRow__doc__ = "Adds a row to the end of the table.";
+/*!
+ Sets the values of all elements of the row.
+*/
+ void SetRow(in long theRow, in LongSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+ const string SetRow__doc__ = "Sets the values of all elements of the row.";
+/*!
+ Returns the row of the table.
+*/
+ LongSeq GetRow(in long theRow) raises(IncorrectIndex);
+ const string GetRow__doc__ = "Returns the row of the table.";
+
+ // operations with columns
+/*!
+ Adds a column to the end of the table.
+*/
+ void AddColumn(in LongSeq theData) raises(IncorrectArgumentLength);
+ const string AddColumn__doc__ = "Adds a column to the end of the table.";
+/*!
+ Sets the values of all elements of the column.
+*/
+ void SetColumn(in long theColumn, in LongSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+ const string SetColumn__doc__ = "Sets the values of all elements of the column.";
+/*!
+ Returns the column of the table.
+*/
+ LongSeq GetColumn(in long theColumn) raises(IncorrectIndex);
+ const string GetColumn__doc__ = "Returns the column of the table.";
+
+ // operations with elements
+/*!
+ Puts a value in the table.
+ \param theRow The row, where the value will be placed.
+ \param theColumn The column, where the value will be placed.
+*/
+ void PutValue(in long theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
+ const string PutValue__doc__ = "Puts a value in a definite row theRow and column theColumn of the table.";
+/*!
+ Returns True if there is a value in the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ boolean HasValue(in long theRow, in long theColumn);
+ const string HasValue__doc__ = "Returns True if there is a value in a definite row and column of the table.";
+/*!
+ Returns the value from the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ long GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
+ const string GatValue__doc__ = "Returns the value from a definite row and column of the table.";
+
+/*!
+ Sets the max number of colums in the table.
+ \note It'd better to set it before filling the table.
+*/
+ void SetNbColumns(in long theNbColumns);
+ const string SetNbColumns__doc__ = "Sets the max number of colums in the table. ";
+
+/*!
+ Returns the indices of the row where the values are defined.
+*/
+ LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
+ const string GetRowSetIndices__doc__ = "Returns the indices of the row where the values are defined.";
+ // operations with files
+/*!
+ Reads a table from a file.
+*/
+ boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
+ const string ReadFromFile__doc__ = "Reads a table from a file.";
+/*!
+ Saves a table into a file.
+*/
+ SALOMEDS::TMPFile SaveToFile();
+ const string SaveToFile__doc__ = "Saves a table into a file.";
+ };
+ const string AttributeTableOfInteger__doc__ = "This attribute allows to store a table of integers (indexing from 1 like in CASCADE) \nand string titles of this table, of each row, of each column.";
+
+ //==========================================================================
+/*! \brief %AttributeTableOfReal interface
+
+ This attribute allows to store a table of reals (indexing from 1 like in CASCADE)
+ and string titles of this table, of each row, of each column.
+ See also an example of usage of these methods in batchmode of %SALOME application.
+
+*/
+ //==========================================================================
+
+ interface AttributeTableOfReal : GenericAttribute
+ {
+/*!
+ This exception is raised when an incorrect index is passed as parameter.
+*/
+ exception IncorrectIndex {};
+/*!
+ This exception is raised when an incorrect length of the argument is passed as parameter.
+*/
+ exception IncorrectArgumentLength {};
+
+ // titles: for table, for each row, for each column
+/*!
+ Sets the title of the table.
+*/
+ void SetTitle(in string theTitle);
+ const string SetTitle__doc__ = "Sets the title of the table.";
+/*!
+ Returns the title of the table.
+*/
+ string GetTitle();
+ const string GetTitle__doc__ = "Returns the title of the table.";
+/*!
+ Sets the title of a row with a definite index.
+*/
+ void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+ const string SetRowTitle__doc__ = "Sets the title of a row with a definite index.";
+/*!
+ Sets the titles for all rows of the table.
+*/
+ void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+ const string SetRowTitles__doc__ = "Sets the titles for all rows of the table.";
+/*!
+ Returns the titles of all rows of the table.
+*/
+ StringSeq GetRowTitles();
+ const string GetRowTitles__doc__ = "Returns the titles of all rows of the table.";
+/*!
+ Sets the title of a column with a definite index.
+*/
+ void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+ const string SetColumnTitle__doc__ = "Sets the title of a column with a definite index.";
+/*!
+ Sets the titles for all columns of the table.
+*/
+ void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+ const string SetColumnTitles__doc__ = "Sets the titles for all columns of the table.";
+/*!
+ Returns the titles of all columns of the table.
+*/
+ StringSeq GetColumnTitles();
+ const string GetColumnTitles__doc__ = "Returns the titles of all columns of the table.";
+
+ //Rows units
+/*!
+ Sets the unit of a row with a definite index.
+*/
+ void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
+ const string SetRowUnit__doc__ = "Sets the unit of a row with a definite index.";
+/*!
+ Sets the units for all rows of the table.
+*/
+ void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
+ const string SetRowUnits__doc__ = "Sets the units for all rows of the table.";
+/*!
+ Returns the units of all rows of the table.
+*/
+ StringSeq GetRowUnits();
+ const string GetRowUnits__doc__ = "Returns the units of all rows of the table.";
+
+ // table information
+/*!
+ Returns the number of rows of the table.
+*/
+ long GetNbRows();
+ const string GetNbRows__doc__ = "Returns the number of rows of the table.";
+/*!
+ Returns the number of columns of the table.
+*/
+ long GetNbColumns();
+ const string GetNbColumns__doc__ = "Returns the number of columns of the table.";
+
+ // operations with rows
+/*!
+ Adds a row to the end of the table.
+*/
+ void AddRow(in DoubleSeq theData) raises(IncorrectArgumentLength);
+ const string AddRow__doc__ = "Adds a row to the end of the table.";
+/*!
+ Sets the values of all elements of the row.
+*/
+ void SetRow(in long theRow, in DoubleSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+ const string SetRow__doc__ = "Sets the values of all elements of the row.";
+/*!
+ Returns the row of the table.
+*/
+ DoubleSeq GetRow(in long theRow) raises(IncorrectIndex);
+ const string GetRow__doc__ = "Returns the row of the table.";
+
+ // operations with columns
+/*!
+ Adds a column to the end of the table.
+*/
+ void AddColumn(in DoubleSeq theData) raises(IncorrectArgumentLength);
+ const string AddColumn__doc__ = "Adds a column to the end of the table.";
+/*!
+ Sets the values of all elements of the column.
+*/
+ void SetColumn(in long theColumn, in DoubleSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+ const string SetColumn__doc__ = "Sets the values of all elements of the column.";
+/*!
+ Returns the column of the table.
+*/
+ DoubleSeq GetColumn(in long theColumn) raises(IncorrectIndex);
+ const string GetColumn__doc__ = "Returns the column of the table.";
+
+ // operations with elements
+/*!
+ Puts a value in the table.
+ \param theRow The row, where the value will be placed.
+ \param theColumn The column, where the value will be placed.
+*/
+ void PutValue(in double theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
+ const string PutValue__doc__ = "Puts a value in a definite row theRow and column theColumn of the table.";
+/*!
+ Returns True if there is a value in the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ boolean HasValue(in long theRow, in long theColumn);
+ const string HasValue__doc__ = "Returns True if there is a value in a definite row and column of the table.";
+/*!
+ Returns the value from the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ double GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
+ const string GatValue__doc__ = "Returns the value from a definite row and column of the table.";
+
+/*!
+ Sets the max number of colums in the table.
+ \note It'd better to set it before filling the table.
+*/
+ void SetNbColumns(in long theNbColumns);
+ const string SetNbColumns__doc__ = "Sets the max number of colums in the table. ";
+
+/*!
+ Returns the indices of the row where the values are defined.
+*/
+ LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
+ const string GetRowSetIndices__doc__ = "Returns the indices of the row where the values are defined.";
+ // operations with files
+/*!
+ Reads a table from a file.
+*/
+ boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
+ const string ReadFromFile__doc__ = "Reads a table from a file.";
+/*!
+ Saves a table into a file.
+*/
+ SALOMEDS::TMPFile SaveToFile();
+ const string SaveToFile__doc__ = "Saves a table into a file.";
+ };
+ const string AttributeTableOfReal__doc__ = "This attribute allows to store a table of reals (indexing from 1 like in CASCADE) \nand string titles of this table, of each row, of each column.";
+
+
+
+ //==========================================================================
+/*! \brief %AttributeTableOfString interface
+
+ This attribute allows to store a table of strings (indexing from 1 like in CASCADE)
+ and string titles of this table, of each row, of each column.
+ See also an example of usage of these methods in batchmode of %SALOME application.
+
+*/
+ //==========================================================================
+
+ interface AttributeTableOfString : GenericAttribute
+ {
+/*!
+ This exception is raised when an incorrect index is passed as parameter.
+*/
+ exception IncorrectIndex {};
+/*!
+ This exception is raised when an incorrect length of the argument is passed as parameter.
+*/
+ exception IncorrectArgumentLength {};
+
+ // titles: for table, for each row, for each column
+/*!
+ Sets the title of the table.
+*/
+ void SetTitle(in string theTitle);
+ const string SetTitle__doc__ = "Sets the title of the table.";
+/*!
+ Returns the title of the table.
+*/
+ string GetTitle();
+ const string GetTitle__doc__ = "Returns the title of the table.";
+/*!
+ Sets the title of a row with a definite index.
+*/
+ void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+ const string SetRowTitle__doc__ = "Sets the title of a row with a definite index.";
+/*!
+ Sets the titles for all rows of the table.
+*/
+ void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+ const string SetRowTitles__doc__ = "Sets the titles for all rows of the table.";
+/*!
+ Returns the titles of all rows of the table.
+*/
+ StringSeq GetRowTitles();
+ const string GetRowTitles__doc__ = "Returns the titles of all rows of the table.";
+/*!
+ Sets the title of a column with a definite index.
+*/
+ void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+ const string SetColumnTitle__doc__ = "Sets the title of a column with a definite index.";
+/*!
+ Sets the titles for all columns of the table.
+*/
+ void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+ const string SetColumnTitles__doc__ = "Sets the titles for all columns of the table.";
+/*!
+ Returns the titles of all columns of the table.
+*/
+ StringSeq GetColumnTitles();
+ const string GetColumnTitles__doc__ = "Returns the titles of all columns of the table.";
+
+ //Rows units
+/*!
+ Sets the unit of a row with a definite index.
+*/
+ void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
+ const string SetRowUnit__doc__ = "Sets the unit of a row with a definite index.";
+/*!
+ Sets the units for all rows of the table.
+*/
+ void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
+ const string SetRowUnits__doc__ = "Sets the units for all rows of the table.";
+/*!
+ Returns the units of all rows of the table.
+*/
+ StringSeq GetRowUnits();
+ const string GetRowUnits__doc__ = "Returns the units of all rows of the table.";
+
+ // table information
+/*!
+ Returns the number of rows of the table.
+*/
+ long GetNbRows();
+ const string GetNbRows__doc__ = "Returns the number of rows of the table.";
+/*!
+ Returns the number of columns of the table.
+*/
+ long GetNbColumns();
+ const string GetNbColumns__doc__ = "Returns the number of columns of the table.";
+
+ // operations with rows
+/*!
+ Adds a row to the end of the table.
+*/
+ void AddRow(in StringSeq theData) raises(IncorrectArgumentLength);
+ const string AddRow__doc__ = "Adds a row to the end of the table.";
+/*!
+ Sets the values of all elements of the row.
+*/
+ void SetRow(in long theRow, in StringSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+ const string SetRow__doc__ = "Sets the values of all elements of the row.";
+/*!
+ Returns the row of the table.
+*/
+ StringSeq GetRow(in long theRow) raises(IncorrectIndex);
+ const string GetRow__doc__ = "Returns the row of the table.";
+
+ // operations with columns
+/*!
+ Adds a column to the end of the table.
+*/
+ void AddColumn(in StringSeq theData) raises(IncorrectArgumentLength);
+ const string AddColumn__doc__ = "Adds a column to the end of the table.";
+/*!
+ Sets the values of all elements of the column.
+*/
+ void SetColumn(in long theColumn, in StringSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+ const string SetColumn__doc__ = "Sets the values of all elements of the column.";
+/*!
+ Returns the column of the table.
+*/
+ StringSeq GetColumn(in long theColumn) raises(IncorrectIndex);
+ const string GetColumn__doc__ = "Returns the column of the table.";
+
+ // operations with elements
+/*!
+ Puts a value in the table.
+ \param theRow The row, where the value will be placed.
+ \param theColumn The column, where the value will be placed.
+*/
+ void PutValue(in string theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
+ const string PutValue__doc__ = "Puts a value in a definite row theRow and column theColumn of the table.";
+/*!
+ Returns True if there is a value in the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ boolean HasValue(in long theRow, in long theColumn);
+ const string HasValue__doc__ = "Returns True if there is a value in a definite row and column of the table.";
+/*!
+ Returns the value from the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ string GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
+ const string GatValue__doc__ = "Returns the value from a definite row and column of the table.";
+
+/*!
+ Sets the max number of colums in the table.
+ \note It'd better to set it before filling the table.
+*/
+ void SetNbColumns(in long theNbColumns);
+ const string SetNbColumns__doc__ = "Sets the max number of colums in the table. ";
+
+/*!
+ Returns the indices of the row where the values are defined.
+*/
+ LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
+ const string GetRowSetIndices__doc__ = "Returns the indices of the row where the values are defined.";
+ // operations with files
+/*!
+ Reads a table from a file.
+*/
+ boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
+ const string ReadFromFile__doc__ = "Reads a table from a file.";
+/*!
+ Saves a table into a file.
+*/
+ SALOMEDS::TMPFile SaveToFile();
+ const string SaveToFile__doc__ = "Saves a table into a file.";
+ };
+ const string AttributeTableOfString__doc__ = "This attribute allows to store a table of string (indexing from 1 like in CASCADE) \nand string titles of this table, of each row, of each column.";
+
+
+ //==========================================================================
+/*! \brief %AttributeStudyProperties interface
+
+ This attribute allows to store study properties: user name, creation date, creation
+ mode, modified flag, locked flag.
+ See also an example of usage of these methods in batchmode of %SALOME application.
+
+*/
+ //==========================================================================
+
+ interface AttributeStudyProperties : GenericAttribute
+ {
+/*!
+ Sets the name of the author of the %Study
+*/
+ void SetUserName(in string theName);
+ const string SetUserName__doc__ = "Sets the name of the author of the study.";
+/*!
+ Returns the name of the user of the %Study.
+ \note It returns a null string, if user name is not set
+*/
+ string GetUserName();
+ const string GetUserName__doc__ = "Returns the name of the user of the study.";
+/*!
+ Sets creation date of the %Study.
+*/
+ void SetCreationDate(in long theMinute, in long theHour, in long theDay, in long theMonth, in long theYear);
+ const string SetCreationDate__doc__ = "Sets creation date of the study.";
+/*!
+ Returns creation date of the %Study and True if creation date is set.
+*/
+ boolean GetCreationDate(out long theMinute, out long theHour, out long theDay, out long theMonth, out long theYear);
+ const string GetCreationDate__doc__ = "Returns creation date of the study and True if creation date is set.";
+/*!
+ Sets creation mode of the %Study.
+ \note Creation mode must be: "from scratch" or "copy from".
+*/
+ void SetCreationMode(in string theMode);
+ const string SetCreationMode__doc__ = "Sets creation mode of the study. Creation mode must be: from scratch or copy from.";
+/*!
+ Returns creation mode: "from scratch", "copy from", or null string
+ if creation mode is not set
+*/
+ string GetCreationMode();
+ const string GetCreationMode__doc__ = "Returns creation mode of the study.";
+/*!
+ Sets the number of transactions executed after the last saving of the document.
+*/
+ void SetModified(in long theModified);
+ const string SetModified__doc__ = "Sets the number of transactions executed after the last saving of the document.";
+/*!
+ Returns True, if the document has been modified and not saved.
+*/
+ boolean IsModified();
+ const string IsModified__doc__ = "Returns True, if the document has been modified and not saved.";
+/*!
+ Returns the number of transactions executed after the last saving of the document.
+*/
+ long GetModified();
+ const string GetModified__doc__ = "Returns the number of transactions executed after the last saving of the document.";
+/*!
+ Sets the document locked for modifications if theLocked is True.
+*/
+ void SetLocked(in boolean theLocked);
+ const string SetLocked__doc__ = "Sets the document locked for modifications if theLocked is True.";
+/*!
+ Returns True if the document is locked for modifications.
+*/
+ boolean IsLocked();
+ const string IsLocked__doc__ = "Returns True if the document is locked for modifications.";
+/*!
+ Appends modification parameters to the modifications list.
+*/
+ void SetModification(in string theName, in long theMinute, in long theHour, in long theDay, in long theMonth, in long theYear);
+ const string SetModification__doc__ = "Appends modification parameters to the modifications list.";
+/*!
+ Returns a list of mosdifiers user names, modification dates.
+ /note If theWithCreator is True, then the output list will also contain the name of the author and the date of creation.
+*/
+ void GetModificationsList(out StringSeq theNames, out LongSeq theMinutes, out LongSeq theHours, out LongSeq theDays, out LongSeq theMonths, out LongSeq theYears, in boolean theWithCreator);
+ const string GetModificationsList__doc__ = "Returns a list of mosdifiers user names, modification dates.";
+ };
+ const string AttributeStudyProperties__doc__ = "This attribute allows to store properties of the study : user name, creation date, \ncreation mode, modified flag, locked flag.";
+ //==========================================================================
+/*! \brief %AttributePythonObject interface
+
+ Attribute allowing to store pyton objects as a sequence of chars.
+*/
+ //==========================================================================
+
+ interface AttributePythonObject : GenericAttribute
+ {
+/*!
+ Sets in the attribute a Python object converted into a sequence of chars.
+ \param theSequence A sequence of chars.
+ \param IsScript Defines (if True) whether this sequence of chars is a Python script.
+*/
+ void SetObject(in string theSequence, in boolean IsScript);
+ const string SetObject__doc__ = "Sets in the attribute a Python object converted into a sequence of chars.";
+/*!
+ Returns a Python object stored in the attribute as a sequence of chars.
+*/
+ string GetObject();
+ const string GetObject__doc__ = "Returns a Python object stored in the attribute as a sequence of chars.";
+/*!
+ Returns True if the sequence of bytes stored in the attribute corresponds
+ to a Python script.
+*/
+ boolean IsScript();
+ const string IsScript__doc__ = "Returns True if the sequence of bytes stored in the attribute corresponds to a Python script.";
+ };
+ const string AttributePythonObject__doc__ = "Attribute allowing to store pyton objects as a sequence of chars.";
+};
+#endif
diff --git a/idl/SALOME_Component.idl b/idl/SALOME_Component.idl
new file mode 100644
index 000000000..f5fe50f56
--- /dev/null
+++ b/idl/SALOME_Component.idl
@@ -0,0 +1,117 @@
+//=============================================================================
+// File : SALOME_Component.idl
+// Created : jeu jui 12 08:11:23 CEST 2001
+// Author : Paul RASCLE, EDF
+// Project : SALOME
+// Copyright : EDF 2001
+// $Header: /dn05/salome/CVS/SALOME_ROOT/idl/SALOME_Component.idl
+//=============================================================================
+
+#ifndef _SALOME_COMPONENT_IDL_
+#define _SALOME_COMPONENT_IDL_
+/*! \ingroup Kernel
+
+This is a package of interfaces used for connecting new components to %SALOME application. It also contains a set of interfaces used
+for management of %MED component in %SALOME application.
+*/
+module Engines
+{
+ interface Component ;
+
+/*! \brief Interface of the %Container
+
+ This interface defines the process of loading and registration
+ of new components in SALOME application
+*/
+ interface Container
+ {
+/*!
+ Initializes the %container with a definite name.
+*/
+ Container start_impl( in string ContainerName ) ;
+
+/*!
+ Loads into the container a new component, registers it and starts it's CORBA servant.
+ \param nameToRegister Name of the component which will be registered in Registry (or Name Service)
+ \param componentName Name of the constructed library of the %component
+*/
+ Component load_impl(in string nameToRegister, in string componentName);
+
+/*!
+ Stops the component servant, and deletes all related objects
+*/
+ void remove_impl(in Component component_i);
+
+/*!
+ Discharges all components from the container.
+*/
+ void finalize_removal() ;
+/*!
+ Determines whether the server has been loaded or not.
+*/
+
+ void ping();
+/*!
+ Name of the %container
+*/
+ readonly attribute string name ;
+/*!
+ Name of the machine containing this container (location of the container).
+*/
+ readonly attribute string machineName ;
+/*!
+ Returns True if the %container has been killed
+*/
+ boolean Kill_impl() ;
+ };
+/*! \brief Interface of the %component
+
+ This interface is used for interaction between the %container and the %component and between
+ the components inside the container.
+*/
+ interface Component
+ {
+/*!
+ The name of the instance of the %Component
+*/
+ readonly attribute string instanceName ;
+/*!
+ The name of the interface of the %Component
+*/
+ readonly attribute string interfaceName ;
+/*!
+ Determines whether the server has already been loaded or not.
+*/
+ void ping();
+/*!
+ Deactivates the %Component.
+*/
+ void destroy() ;
+/*!
+ Returns the container that the %Component refers to.
+*/
+ Container GetContainerRef() ;
+/*!
+ This method is used by the %SUPERVISOR component. It sets the names of the graph and of the node.
+*/
+ void Names( in string aGraphName , in string aNodeName ) ;
+/*!
+ Returns True if the %Component has been killed.
+*/
+ boolean Kill_impl() ;
+/*!
+ Returns True if the activity of the %Component has been stopped. (It's action can't be resumed)
+*/
+ boolean Stop_impl() ;
+/*!
+ Returns True if the activity of the %Component has been suspended. (It's action can be resumed)
+*/
+ boolean Suspend_impl() ;
+/*!
+ Returns True if the activity of the %Component has been resumed.
+*/
+ boolean Resume_impl() ;
+ } ;
+} ;
+
+#endif
diff --git a/idl/SALOME_DataTypeCatalog.idl b/idl/SALOME_DataTypeCatalog.idl
new file mode 100644
index 000000000..34b4edc57
--- /dev/null
+++ b/idl/SALOME_DataTypeCatalog.idl
@@ -0,0 +1,31 @@
+// File: SALOME_DataTypeCatalog.idl
+// Created: Mon August 08 2001
+// Author: Estelle Deville, Paul Rascle
+// Project: SALOME
+// Copyright : CEA/DEN/DMSS/LGLS
+// $Header$
+
+module SALOME_DataTypeCatalog{
+// Type definitions
+
+// List of Data Type Names
+ typedef sequence ListOfDataTypeName ;
+
+ // Exception thrown if a DataType is not found in the catalog
+ exception NotFound {};
+//--------------------------------------------------------------------------
+// Interfaces
+
+// Catalog interface :
+// methods to :
+// - obtain the data type names of the catalog
+// - test the compatibility between two type names
+interface DataCatalog
+{
+ ListOfDataTypeName GetDataTypeList() ;
+ boolean isDerivedFrom(in string type_in, in string type_out) raises(NotFound);
+ string GetDataInterfaceRead(in string type) raises(NotFound);
+ string GetDataInterfaceWrite(in string type)raises(NotFound);
+ ListOfDataTypeName GetDataTypeParents(in string type) raises(NotFound);
+} ;
+};
diff --git a/idl/SALOME_Exception.idl b/idl/SALOME_Exception.idl
new file mode 100644
index 000000000..5c491e65a
--- /dev/null
+++ b/idl/SALOME_Exception.idl
@@ -0,0 +1,51 @@
+//=============================================================================
+// File : SALOME_Exception.idl
+// Created : mar déc 18 17:57:27 CET 2001
+// Author : Paul RASCLE, EDF
+// Project : SALOME
+// Copyright : EDF 2001
+// $Header$
+//=============================================================================
+
+/*! \file SALOME_Exception.idl This file contains the objects defining the main exception used
+in %SALOME application.
+*/
+#ifndef _SALOME_EXCEPTION_IDL_
+#define _SALOME_EXCEPTION_IDL_
+
+/*!
+Module SALOME regroups all idl definitions for SALOME Kernel
+*/
+
+module SALOME
+{
+/*!
+This enumeration contains the elements indicating the type of the exception.
+*/
+ enum ExceptionType
+ {
+ COMM, /*!< Communication problem */
+ BAD_PARAM, /*!< Bad User parameters */
+ INTERNAL_ERROR /*!< SALOME Bug, irrecoverable */
+ };
+/*!
+This struct contains a set of fields defining the structure of the exception.
+*/
+ struct ExceptionStruct
+ {
+ ExceptionType type; /*! ListOfServicesParameter;
+/*!
+This struct contains fields completely defining each service.
+*/
+
+ struct Service
+ {
+ string ServiceName; /*! ListOfInterfaceService;
+/*!
+List of services.
+*/
+ typedef sequence ListOfServices ;
+/*!
+This struct contains fields defining each interface.
+*/
+ struct DefinitionInterface
+ {
+ string interfacename ; /*! ListOfDefInterface ;
+/*!
+List of interfaces.
+*/
+ typedef sequence ListOfInterfaces ;
+/*!
+List of names of components.
+*/
+ typedef sequence ListOfComponents ;
+/*!
+List of names of computers.
+*/
+ typedef sequence ListOfComputers ;
+/*!
+This struct contains GUI elements used for representation of the module in %IAPP component.
+*/
+ struct IAPP_Affich
+ {
+ string modulename; /*! ListOfIAPP_Affich ;
+
+/*!
+ This exception is raised when a %component, a %service or a % pathPrefix is not found.
+*/
+ exception NotFound
+ {
+ string what ; /*!If the specified interface doesn't exist, Notfound exception is thrown
+ \param interfacename Name of the interface
+ \return Required interface
+ */
+ DefinitionInterface GetInterface(in string interfacename) raises(NotFound);
+
+ // GetServiceList : operation to get a list of the services name of
+ // an interface of a component
+ /*!
+ Gets a list of names of services of a definite interface belonging to the component.
+ \note If the specified interface doesn't exist, Notfound exception is thrown.
+ \param interfacename Name of the interface
+ \return List of services of the required interface
+ */
+ ListOfServices GetServiceList(in string interfacename) raises(NotFound);
+
+
+ // GetService : operation to get one service of an interface of a component
+
+ /*!
+ Gets a definite service of an interface of the component.
+ \note If the required service or the specified interface don't exist, Notfound exception is thrown.
+ \param interfacename Name of the interface
+ \param servicename Name of the service
+ \return Required service
+ */
+
+ Service GetService(in string interfacename,
+ in string servicename) raises(NotFound);
+
+ // GetDefaultService : operation to get the default service
+ // of an interface of a component
+/*!
+ Gets the default service of an interface of the component.
+ \note If the required service or the specified interface don't exist, Notfound exception is thrown.
+ \param interfacename Name of the interface
+ \return Required service
+ */
+
+ Service GetDefaultService(in string interfacename) raises(NotFound);
+
+ // GetPathPrefix : operation to get the PathPrefix of a computer
+ /*!
+ Gets the prefix path of the computer containing the %component.
+ \note If the required computer doesn't exist, Notfound exception is thrown
+ \param machinename Name of the machine
+ \return Prefix path
+ */
+
+ string GetPathPrefix(in string machinename) raises(NotFound);
+
+/*!
+ Sets/gets the constraint affected to the component
+ (to be resolved by LifeCycle for the computer choice)
+*/
+ readonly attribute string constraint ;
+
+/*!
+Sets/gets the name of the component
+*/
+ readonly attribute string componentname;
+
+/*!
+Defines whether the component can be multistudy or not
+*/
+ readonly attribute boolean multistudy;
+
+/*!
+Defines the type of the component
+*/
+ readonly attribute ComponentType component_type ;
+
+/*!
+Sets/gets the icone of the component (for IAPP)
+*/
+ readonly attribute string component_icone;
+ } ;
+/*! \brief %Module catalog interface
+
+This interface is used for creation of the module catalog in %SALOME application.
+*/
+ interface ModuleCatalog
+ {
+ void ping();
+
+/*!
+ Gets a list of names of computers of the catalog
+*/
+ ListOfComputers GetComputerList();
+
+/*!
+Gets the %PathPrefix of a computer
+*/
+ string GetPathPrefix(in string machinename) raises(NotFound);
+/*!
+ Gets a list of names of components of the catalog
+*/
+ ListOfComponents GetComponentList();
+/*!
+Gets a list of pair GUI elements (component name, component icone)
+used for representation of the module in %IAPP component.
+*/
+
+ ListOfIAPP_Affich GetComponentIconeList();
+/*!
+Gets a list of names of components of a particular type, which belong to this catalog.
+*/
+ // GetComponentList : operation to get a list of the components name of
+ // a particular type of the catalog
+ ListOfComponents GetTypedComponentList(in ComponentType _component_type);
+
+/*!
+Gets one component of the catalog.
+*/
+ Acomponent GetComponent(in string componentname) raises(NotFound);
+ } ;
+};
diff --git a/idl/SALOME_Registry.idl b/idl/SALOME_Registry.idl
new file mode 100644
index 000000000..d3e7a7fed
--- /dev/null
+++ b/idl/SALOME_Registry.idl
@@ -0,0 +1,38 @@
+# ifndef __registry_idl__
+# define __registry_idl__
+
+module Registry
+{
+ struct Infos
+ {
+ string name;
+ long pid;
+ string machine;
+ string adip;
+ long uid;
+ string pwname;
+ long tc_start;
+ long tc_hello;
+ long tc_end;
+ long difftime;
+ string cdir;
+ long status;
+ string ior; // client
+ };
+
+ typedef sequence AllInfos;
+
+ interface Components
+ {
+ void ping();
+ unsigned long add ( in Infos lesInfos ) ;
+ void remove ( in unsigned long id ) ;
+ unsigned long size() ;
+ AllInfos getall () ;
+ AllInfos history () ;
+ oneway void end() ;
+ oneway void hello( in unsigned long id ) ;
+ } ;
+} ;
+
+# endif
diff --git a/idl/SALOME_RessourcesCatalog.idl b/idl/SALOME_RessourcesCatalog.idl
new file mode 100755
index 000000000..be518177f
--- /dev/null
+++ b/idl/SALOME_RessourcesCatalog.idl
@@ -0,0 +1,46 @@
+// File: SALOME_RessourcesCatalog.idl
+// Created: Mon Sep 10 2001
+// Author: Estelle Deville
+// Project: SALOME
+// Copyright : CEA/DEN/DMSS/LGLS
+// $Header$
+
+module SALOME_RessourcesCatalog{
+ // Type Definitions
+
+ //Proc_info : information about a processor
+ struct proc_info{
+ long number;
+ string model_name;
+ float cpu_mhz;
+ float cache_size;
+ };
+
+ typedef sequence ListOfProc;
+
+ //Computer_info : information about a computer
+ // Os and informations about processors
+ struct computer_info{
+ string name;
+ string OS;
+ string OS_version;
+ ListOfProc procs;
+ };
+
+ enum ContainerType {Cpp, python, NP};
+ typedef sequence ListOfContainerType;
+
+ typedef sequence ListOfComputer;
+
+ // exception thrown if a computer is not found in the catalog
+
+ exception NotFound {};
+
+ //------------------------------------------------------------------
+ //Interface
+ interface RessourcesCatalog {
+ ListOfComputer GetComputerList();
+ ListOfContainerType GetContainerTypeList (in string computer) raises(NotFound);
+ computer_info GetComputerInfo(in string computer) raises(NotFound);
+ };
+};
diff --git a/idl/SALOME_Session.idl b/idl/SALOME_Session.idl
new file mode 100644
index 000000000..81c95996c
--- /dev/null
+++ b/idl/SALOME_Session.idl
@@ -0,0 +1,88 @@
+//=============================================================================
+// File : SALOME_Session.idl
+// Created : mar jun 19 09:15:07 CEST 2001
+// Author : Paul RASCLE, EDF
+// Project : SALOME
+// Copyright : EDF 2001
+// $Header$
+//=============================================================================
+
+
+//***//#include "VISU_Gen.idl"
+/*! \defgroup Kernel SALOME KERNEL module
+*/
+
+/*! \ingroup Kernel
+
+ This package contains interfaces used for management of the session in %SALOME application.
+*/
+module SALOME
+{
+/*! \brief State of the session
+
+ This enumeration contains values defining the state of the session
+
+*/
+ enum SessionState {asleep, running} ;
+
+/*! \brief %Session State and Statistics
+
+
+ This struct contains a field list with general information about the session
+*/
+
+ struct StatSession
+ {
+/*! \brief State of the session
+
+ It can be:
+ * -# asleep : no running study
+ * -# running : one or more running studies
+*/
+ SessionState state ;
+/*! Number of running studies
+*/
+ short runningStudies ;
+/*! It is True if GUI is active in the session
+*/
+ boolean activeGUI ;
+ } ;
+/*! \brief Interface of the session
+
+ The %session Server launches and stops GUI (Graphical User Interface).
+ The %session can be active without GUI (It can contain one or more running studies)
+*/
+
+ interface Session
+ {
+/*!
+ This exception is raised when trying to stop the %session with active GUI
+*/
+ exception GUIActive {} ;
+/*!
+ This exception is raised when trying to stop the %session with a number of running studies.
+*/
+ exception RunningStudies {} ;
+
+/*!
+ Launches GUI in the session
+*/
+ void GetInterface();
+ //***// VISU::VISU_Gen GetVisuGen();
+
+/*!
+ Stops the %Session (It must be idle)
+*/
+ void StopSession() raises(GUIActive, RunningStudies) ;
+
+/*!
+ Gets Session State
+*/
+ StatSession GetStatSession() ;
+/*!
+ Determines whether the server has already been loaded or not.
+*/
+ void ping();
+ } ;
+
+} ;
diff --git a/idl/SALOME_TestComponent.idl b/idl/SALOME_TestComponent.idl
new file mode 100644
index 000000000..212093652
--- /dev/null
+++ b/idl/SALOME_TestComponent.idl
@@ -0,0 +1,20 @@
+//=============================================================================
+// File : SALOME_TestComponent.idl
+// Created : jeu jui 12 12:08:17 CEST 2001
+// Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA
+// Project : SALOME
+// Copyright : EDF 2001 - CEA 2001
+// $Header$
+//=============================================================================
+
+#include "SALOME_Component.idl"
+
+module Engines
+{
+
+ interface TestComponent : Component
+ {
+ string Coucou(in long L);
+ };
+
+};
diff --git a/idl/TestNotif.idl b/idl/TestNotif.idl
new file mode 100644
index 000000000..b251e71ed
--- /dev/null
+++ b/idl/TestNotif.idl
@@ -0,0 +1,10 @@
+# ifndef __TESTNOTIF_IDL_
+# define __TESTNOTIF_IDL_
+
+interface Solver
+{
+ boolean Connect();
+ oneway void Start() ;
+ oneway void ReStart() ;
+} ;
+# endif
diff --git a/idl/TypeData.idl b/idl/TypeData.idl
new file mode 100644
index 000000000..d4f20adea
--- /dev/null
+++ b/idl/TypeData.idl
@@ -0,0 +1,21 @@
+#ifndef _SALOME_TYPEDATA_IDL_
+#define _SALOME_TYPEDATA_IDL_
+
+module Engines
+{
+
+ typedef sequence DoubleVec ;
+ typedef sequence IntVec;
+
+ typedef struct CSR {
+ unsigned long nbpos;
+ unsigned long nbval;
+ IntVec pos;
+ IntVec col;
+ DoubleVec data;
+ } CSRMatStruct;
+
+} ;
+
+#endif
+
diff --git a/resources/Application-About.png b/resources/Application-About.png
new file mode 100644
index 000000000..4ab6ecba5
Binary files /dev/null and b/resources/Application-About.png differ
diff --git a/resources/Application-Logo.png b/resources/Application-Logo.png
new file mode 100644
index 000000000..8781eff05
Binary files /dev/null and b/resources/Application-Logo.png differ
diff --git a/resources/Application-Splash.png b/resources/Application-Splash.png
new file mode 100644
index 000000000..5c3d74767
Binary files /dev/null and b/resources/Application-Splash.png differ
diff --git a/resources/CatalogDataType.xml b/resources/CatalogDataType.xml
new file mode 100644
index 000000000..c7d9cded4
--- /dev/null
+++ b/resources/CatalogDataType.xml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+ Matrice
+ Matrice
+ read_matrice
+ write_matrice
+
+
+
+ Vector
+ Vecteur
+ read_vector
+ write_vector
+
+
+
+ MatriceCarree
+ Matrice carrée
+ read_matrice_carree
+ write_matrice_carree
+
+ Matrice
+
+
+
+
+ MatriceStockagePlein
+ Matrice stockage plein
+ read_matrice_sp
+ write_matrice_sp
+
+ Matrice
+
+
+
+
+ MatriceCarreeStockagePlein
+ Matrice carree stockage plein
+ read_matrice_carree_sp
+ write_matrice_carree_sp
+
+ MatriceCarree
+ MatriceStockagePlein
+
+
+
+
+ MatriceTriangleStockageU
+ Matrice triangle stockage U
+ read_matrice_triangle_U
+ write_matrice_triangle_U
+
+ MatriceCarree
+
+
+
+
+ MatriceTriangleStockageL
+ Matrice triangle stockage L
+ read_matrice_triangle_L
+ write_matrice_triangle_L
+
+ MatriceCarree
+
+
+
+
+ MatriceSDP
+ Matrice SDP
+ read_matrice_sdp
+ write_matrice_sdp
+
+ MatriceCarree
+
+
+
+
+ MatriceSDPStockagePlein
+ Matrice SDP stockage plein
+ read_matrice_sdp_sp
+ write_matrice_sdp_sp
+
+ MatriceSDP
+ MatriceStockagePlein
+
+
+
+
+ MatriceSDPStockageU
+ Matrice SDP stockage U
+ read_matrice_sdp_U
+ write_matrice_sdp_U
+
+ MatriceTriangleStockageU
+ MatriceSDP
+
+
+
+
+ DataDiodore
+ Data generees pour Diodore
+ read_DataDiodore
+ write_DataDiodore
+
+
+
+ MatriceSDPStockageL
+ Matrice SDP stockage L
+ read_matrice_sdp_L
+ write_matrice_sdp_L
+
+ MatriceTriangleStockageL
+ MatriceSDP
+
+
+
+
diff --git a/resources/CatalogModuleGeneral.xml b/resources/CatalogModuleGeneral.xml
new file mode 100644
index 000000000..66f2d6776
--- /dev/null
+++ b/resources/CatalogModuleGeneral.xml
@@ -0,0 +1,1815 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Salome
+ Other
+ NRI
+ 1.0
+ GUI Neutral Context
+ 1
+
+ hostname = muna
+
+
+
+ Geometry
+ Geom
+ NRI
+ 1.0
+ Geom component - Open CASCADE
+ 1
+ ModuleGeom.png
+
+
+
+
+ Geometry
+ No comment
+
+
+
+
+ InitGeomEngine
+
+
+
+ 1
+
+
+ long
+ StudyID
+
+
+
+
+
+ Engines::GEOM_Gen
+ geomEngine
+
+
+
+
+
+ MakeAxisStruct
+
+
+
+ 1
+
+
+ double
+ x
+
+
+
+ double
+ y
+
+
+
+ double
+ z
+
+
+
+ double
+ vx
+
+
+
+ double
+ vy
+
+
+
+ double
+ vz
+
+
+
+
+
+ AxisStruct
+ axis
+
+
+
+
+
+ MakePointStruct
+
+
+
+ 1
+
+
+ double
+ x
+
+
+
+ double
+ y
+
+
+
+ double
+ z
+
+
+
+
+
+ PointStruct
+ point
+
+
+
+
+
+
+ MakeBox
+ NRI
+ 1.0
+ test XML
+ 1
+
+
+
+ double
+ x1
+ X coordinate
+
+
+ double
+ y1
+ Y coordinate
+
+
+ double
+ z1
+ Z coordinate
+
+
+ double
+ x2
+ X coordinate
+
+
+ double
+ y2
+ Y coordinate
+
+
+ double
+ z2
+ Z coordinate
+
+
+
+
+ GEOM_Shape
+ shape
+ boite
+
+
+
+
+
+ MakeSphere
+ NRI
+ 1.0
+ test XML
+ 1
+
+
+
+ double
+ x1
+ X coordinate
+
+
+ double
+ y1
+ Y coordinate
+
+
+ double
+ z1
+ Z coordinate
+
+
+ double
+ radius
+ Sphere Radius
+
+
+
+
+ GEOM_Shape
+ shape
+ sphere
+
+
+
+
+
+ MakeTranslation
+ NRI
+ 1.0
+ test XML
+ 1
+
+
+
+ GEOM_Shape
+ shape1
+ Shape
+
+
+ double
+ x1
+ ..
+
+
+ double
+ y1
+ ..
+
+
+ double
+ z1
+ ..
+
+
+
+
+ GEOM_Shape
+ shape
+ Result
+
+
+
+
+
+ MakeCopy
+ NRI
+ 1.0
+ test XML
+ 1
+
+
+
+ GEOM_Shape
+ shape1
+ Shape
+
+
+
+
+ GEOM_Shape
+ shape
+ Result
+
+
+
+
+
+ MakeBoolean
+ NRI
+ 1.0
+ test XML
+ 1
+
+
+
+ GEOM_Shape
+ shape1
+ Shape
+
+
+ GEOM_Shape
+ shape2
+ Tools
+
+
+ long
+ operation
+ Operation Type
+
+
+
+
+ GEOM_Shape
+ shape
+ Result
+
+
+
+
+
+ MakeFuse
+ NRI
+ 1.0
+ test XML
+ 1
+
+
+
+ GEOM_Shape
+ shape1
+ Shape
+
+
+ GEOM_Shape
+ shape2
+ Tools
+
+
+
+
+ GEOM_Shape
+ shape
+ Result
+
+
+
+
+
+ hostname = localhost
+
+
+
+ SMESH
+ Mesh
+ NRI
+ 1.0
+ New Mesh component
+ 1
+ ModuleMesh.png
+
+
+ SMESH
+
+
+
+ CreateHypothesis
+
+
+
+ 1
+
+
+ string
+ anHyp
+
+
+
+ long
+ studyId
+
+
+
+
+
+ SMESH_Hypothesis
+ aHyp
+
+
+
+
+
+ Init
+
+
+
+ 1
+
+
+ GEOM_Gen
+ geomEngine
+
+
+
+ long
+ studyId
+
+
+
+ GEOM_Shape
+ aShape
+
+
+
+
+
+ SMESH_Mesh
+ aMesh
+
+
+
+
+
+ Compute
+
+
+
+ 1
+
+
+ SMESH_Mesh
+ aMesh
+
+
+
+ GEOM_Shape
+ aSubShape
+
+
+
+
+
+ boolean
+ res
+ Result
+
+
+
+
+ IsReadyToCompute
+
+
+
+ 1
+
+
+ SMESH_Mesh
+ aMesh
+
+
+
+ GEOM_Shape
+ aSubShape
+
+
+
+
+ boolean
+ res
+ Result
+
+
+
+ SMESH_Mesh
+
+
+
+ AddHypothesis
+
+
+
+ 1
+
+
+ GEOM_Shape
+ aSubShape
+
+
+
+ SMESH_Hypothesis
+ aHyp
+
+
+
+
+
+ boolean
+ res
+ Result
+
+
+
+
+
+ hostname = localhost
+
+
+
+ Visu
+ VISU
+ NRI
+ 1.0
+ Visu component - Maquette septembre
+ 1
+ ModuleVisu.png
+ hostname = localhost
+
+
+
+ Supervision
+ Supervision
+ ARS
+ 1.0
+ Supervision control GUI
+ 1
+ ModuleSupervision.png
+ hostname = localhost
+
+ SuperG
+ SupervisionEngine
+
+
+
+
+ Med
+ Mesh
+ Patrick GOLDBRONN
+ 1.0
+ MED memoire
+ 1
+ ModuleMed.png
+
+
+
+
+ MED
+ No comment
+
+
+
+
+
+
+
+
+
+
+ AddComponent
+ SuperVisionTest
+ MTJ
+ 1.0
+ Test SuperVision SALOME/src/SALOME_SWIG/supervisionexample[1].py
+ 0
+
+
+ AddComponent
+ + ...
+
+
+
+
+ Addition
+ MTJ
+ 1.0
+ Floating add
+ 1
+
+
+
+
+
+ Adder
+ Adder
+ Adder object
+
+
+
+
+
+ Add
+ MTJ
+ 1.0
+ Floating add
+ 1
+
+
+
+ double
+ x
+ First number
+
+
+ double
+ y
+ Second number
+
+
+
+
+ double
+ FuncValue
+ Substract result
+
+
+ double
+ z
+ Addition result
+
+
+
+
+ Adder
+ + ...
+
+
+
+
+ Add
+ MTJ
+ 1.0
+ Floating add
+ 1
+
+
+
+ Adder
+ Adder
+ Adder Object
+
+
+ double
+ x
+ First number
+
+
+ double
+ y
+ Second number
+
+
+
+
+ double
+ FuncValue
+ Substract result
+
+
+ double
+ z
+ Addition result
+
+
+
+
+
+ AddAndCompare
+ MTJ
+ 1.0
+ Floating add
+ 1
+
+
+
+ Adder
+ Adder
+ Adder Object
+
+
+ double
+ x
+ First number
+
+
+ double
+ y
+ Second number
+
+
+ Adder
+ anOtherAdder
+ Adder Object
+
+
+
+
+ double
+ FuncValue
+ Substract result
+
+
+ double
+ z
+ Addition result
+
+
+
+
+
+ SetLastResult
+ MTJ
+ 1.0
+ set the last result field
+ 1
+
+
+
+ Adder
+ Adder
+ Adder Object
+
+
+ double
+ z
+ number
+
+
+
+
+
+
+
+ LastResult
+ MTJ
+ 1.0
+ get the last result field
+ 1
+
+
+
+ Adder
+ Adder
+ Adder Object
+
+
+
+
+ double
+ z
+ number
+
+
+
+
+
+
+
+
+
+ SubComponent
+ SuperVisionTest
+ MTJ
+ 1.0
+ Test SuperVision SALOME/src/SALOME_SWIG/supervisionexample[1].py
+ 0
+
+
+ SubComponent
+ - ...
+
+
+
+
+ Sub
+ MTJ
+ 1.0
+ Floating substract
+ 1
+
+
+
+ double
+ x
+ First number
+
+
+ double
+ y
+ Second number
+
+
+
+
+ double
+ z
+ Substraction result
+
+
+
+
+
+
+
+
+
+ MulComponent
+ SuperVisionTest
+ MTJ
+ 1.0
+ Test SuperVision SALOME/src/SALOME_SWIG/supervisionexample[1].py
+ 0
+
+
+ MulComponent
+ * ...
+
+
+
+
+ Mul
+ MTJ
+ 1.0
+ Float multiply
+ 1
+
+
+
+ double
+ x
+ First number
+
+
+ double
+ y
+ Second number
+
+
+
+
+ double
+ z
+ Multiplication result
+
+
+
+
+
+
+
+
+
+ DivComponent
+ SuperVisionTest
+ MTJ
+ 1.0
+ Test SuperVision SALOME/src/SALOME_SWIG/supervisionexample[1].py
+ 0
+
+
+ DivComponent
+ / ...
+
+
+
+
+ Div
+ MTJ
+ 1.0
+ Floating divide
+ 1
+
+
+
+ double
+ x
+ First number
+
+
+ double
+ y
+ Second number
+
+
+
+
+ double
+ z
+ Division result
+
+
+
+
+
+
+
+
+ SyrComponent
+ SuperVisionTest
+ JR
+
+ SuperVisionTest
+ 1
+
+
+
+ SyrComponent
+
+
+
+ C_ISEVEN
+
+
+
+ 0
+
+
+ long
+ anInteger
+
+
+
+
+
+ long
+ BoolEven
+
+
+
+
+
+ C_ISONE
+
+
+
+ 0
+
+
+ long
+ anInteger
+
+
+
+
+
+ long
+ BoolOne
+
+
+
+
+
+ C_M3
+
+
+
+ 0
+
+
+ long
+ anOddInteger
+
+
+
+
+
+ long
+ anInteger
+
+
+
+
+
+ C_M3P1
+
+
+
+ 0
+
+
+ long
+ anOddInteger
+
+
+
+
+
+ long
+ anEvenInteger
+
+
+
+
+
+ C_DIV2
+
+
+
+ 0
+
+
+ long
+ anEvenInteger
+
+
+
+
+
+ long
+ anInteger
+
+
+
+
+
+ C_INCR
+
+
+
+ 0
+
+
+ long
+ aCount
+
+
+
+
+
+ long
+ aNewCount
+
+
+
+
+
+ C_MIN
+
+
+
+ 0
+
+
+ long
+ aMinVal
+
+
+
+ long
+ anInteger
+
+
+
+
+
+ long
+ aNewMinVal
+
+
+
+
+
+ C_MAX
+
+
+
+ 0
+
+
+ long
+ aMaxVal
+
+
+
+ long
+ anInteger
+
+
+
+
+
+ long
+ aNewMaxVal
+
+
+
+
+
+ C_LISTOFSYR
+
+
+
+ 0
+
+
+
+
+ ListOfSyr
+ aListOfSyr
+
+
+
+
+
+ C_AVERAGE
+
+
+
+ 0
+
+
+ ListOfSyr
+ aListOfSyr
+
+
+
+ long
+ anInteger
+
+
+
+ long
+ aCount
+
+
+
+
+
+ ListOfSyr
+ aNewListOfSyr
+
+
+
+ double
+ anAverage
+
+
+
+
+
+ Init
+
+
+
+ 0
+
+
+ long
+ anOddInteger
+
+
+
+
+
+ Syr
+ aSyracuse
+
+
+
+
+
+ Syr
+
+
+
+ Count
+
+
+
+ 0
+
+
+ Syr
+ aSyracuse
+
+
+
+
+
+ long
+ aCount
+
+
+
+
+
+ Current
+
+
+
+ 0
+
+
+ Syr
+ aSyracuse
+
+
+
+
+
+ long
+ aCurrent
+
+
+
+
+
+ IsEven
+
+
+
+ 0
+
+
+ Syr
+ aSyracuse
+
+
+
+
+
+ long
+ BoolEven
+
+
+
+
+
+ IsOne
+
+
+
+ 0
+
+
+ Syr
+ aSyracuse
+
+
+
+
+
+ long
+ BoolOne
+
+
+
+
+
+ M3p1
+
+
+
+ 0
+
+
+ Syr
+ aSyracuse
+
+
+
+
+
+
+
+ Div2
+
+
+
+ 0
+
+
+ Syr
+ aSyracuse
+
+
+
+
+
+
+
+ Incr
+
+
+
+ 0
+
+
+ Syr
+ aSyracuse
+
+
+
+
+
+
+
+
+
+
+
+
+ FactorialComponent
+ SuperVisionTest
+ Malvagi, Tajchman
+ 1.0
+ Factorial
+ 0
+
+
+ FactorialComponent
+ No comment
+
+
+
+
+ eval
+ MT-FM
+ 1.0
+ Factorial
+ 1
+
+
+
+ long
+ n
+
+
+
+
+
+ long
+ f
+ result
+
+
+
+
+
+
+
+
+ SyrControlComponent
+ SuperVisionTest
+ JR
+
+ SuperVisionTest
+ 1
+
+
+
+ SyrControlComponent
+
+
+
+ L_OneEven
+
+
+
+ 0
+
+
+ long
+ ValOne
+
+
+
+ long
+ ValEven
+
+
+
+
+
+ long
+ Finished
+
+
+
+ long
+ Incr
+
+
+
+ long
+ Even
+
+
+
+ long
+ Odd
+
+
+
+
+
+ C_NotOneIsEven
+
+
+
+ 0
+
+
+
+ long
+ ValOne
+
+
+
+ long
+ ValEven
+
+
+
+
+
+ LOOPN
+
+
+
+ 0
+
+
+ long
+ InLoop
+
+
+
+ long
+ NN
+
+
+
+ long
+ KK
+
+
+
+ long
+ min
+
+
+
+ long
+ max
+
+
+
+
+
+ long
+ OutLoop
+
+
+
+ long
+ N
+
+
+
+ long
+ K
+
+
+
+
+
+ WHILENOTONE
+
+
+
+ 0
+
+
+ long
+ N
+
+
+
+
+
+ long
+ OutLoop
+
+
+
+
+
+ IFNOTEVEN
+
+
+
+ 0
+
+
+ long
+ N
+
+
+
+
+
+ long
+ Odd
+
+
+
+ long
+ Even
+
+
+
+
+
+ LOOPi
+
+
+
+ 0
+
+
+ long
+ InLoop
+
+
+
+ long
+ ii
+
+
+
+
+
+ long
+ OutLoop
+
+
+
+ long
+ i
+
+
+
+
+
+ WHILEEVEN
+
+
+
+ 0
+
+
+ long
+ N
+
+
+
+
+
+ long
+ OutLoop
+
+
+
+
+
+
+
+
+
+
+ Calculator
+ SOLVER
+ LD
+ 1.0
+ Test component (Arithmetic operations with MED_Field) - SALOME component
+ 0
+ hostname = localhost
+
+
+ Calculator
+ No comment
+
+
+
+
+ Mul
+ LD
+ 1.0
+ Multiplication of 2 fields of double
+ 1
+
+
+
+ FIELDDOUBLE
+ field1
+ initial field of double
+
+
+ double
+ x1
+ multiplicator
+
+
+
+
+ FIELDDOUBLE
+ return
+ result
+
+
+
+
+
+ Add
+ LD
+ 1.0
+ Addition of 2 fields of double
+ 1
+
+
+
+ FIELDDOUBLE
+ field1
+ first field of double
+
+
+ FIELDDOUBLE
+ field2
+ second field of double
+
+
+
+
+ FIELDDOUBLE
+ return
+ result
+
+
+
+
+
+ Constant
+ LD
+ 1.0
+ Build a constant field of doubles
+ 1
+
+
+
+ FIELDDOUBLE
+ field1
+ allows to build the support
+
+
+ double
+ x1
+ the constant
+
+
+
+
+ FIELDDOUBLE
+ return
+ result based on first field support
+
+
+
+
+
+ writeMEDfile
+ LD
+ 1.0
+ write a field in a Med file
+ 1
+
+
+
+ FIELDDOUBLE
+ field1
+ transient Med field
+
+
+ string
+ filename
+ Med filename
+
+
+
+
+
+
+
+
+ CalculatorPy
+ SOLVER
+ NB
+ 1.0
+ Test component (Arithmetic operations with MED_Field) - SALOME component
+ 0
+ hostname = localhost
+
+
+ CalculatorPy
+ No comment
+
+
+
+
+ Mul
+ NB
+ 1.0
+ Multiplication of 2 fields of double
+ 1
+
+
+
+ FIELDDOUBLE
+ field1
+ initial field of double
+
+
+ double
+ x1
+ multiplicator
+
+
+
+
+ FIELDDOUBLE
+ return
+ result
+
+
+
+
+
+ Add
+ NB
+ 1.0
+ Addition of 2 fields of double
+ 1
+
+
+
+ FIELDDOUBLE
+ field1
+ first field of double
+
+
+ FIELDDOUBLE
+ field2
+ second field of double
+
+
+
+
+ FIELDDOUBLE
+ return
+ result
+
+
+
+
+
+ Constant
+ NB
+ 1.0
+ Build a constant field of doubles
+ 1
+
+
+
+ FIELDDOUBLE
+ field1
+ allows to build the support
+
+
+ double
+ x1
+ the constant
+
+
+
+
+ FIELDDOUBLE
+ return
+ result based on first field support
+
+
+
+
+
+ writeMEDfile
+ NB
+ 1.0
+ write a field in a Med file
+ 1
+
+
+
+ FIELDDOUBLE
+ field1
+ transient Med field
+
+
+ string
+ filename
+ Med filename
+
+
+
+
+
+
+
+
diff --git a/resources/CatalogModulePersonnel.xml_skel b/resources/CatalogModulePersonnel.xml_skel
new file mode 100644
index 000000000..b5a892ba0
--- /dev/null
+++ b/resources/CatalogModulePersonnel.xml_skel
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/CatalogRessources.xml b/resources/CatalogRessources.xml
new file mode 100644
index 000000000..2200b4171
--- /dev/null
+++ b/resources/CatalogRessources.xml
@@ -0,0 +1,43 @@
+
+
+ eri
+ Linux
+ 2.2.14-6.1.1smp
+
+
+ 0
+ Pentium III (Coppermine)
+ 860.946775
+ 256
+
+
+ 1
+ Pentium III (Coppermine)
+ 860.946775
+ 256
+
+
+
+ C++
+ python
+ NP
+
+
+
+ omote
+ Linux
+ 2.4.3-12smp
+
+
+ 0
+ Pentium II (Deschutes)
+ 398.780
+ 512
+
+
+
+ C++
+ python
+
+
+
diff --git a/resources/Plugin b/resources/Plugin
new file mode 100644
index 000000000..82126243f
--- /dev/null
+++ b/resources/Plugin
@@ -0,0 +1,10 @@
+! Description of available plugins
+! ********************************
+!
+a148e300-5740-11d1-a904-080036aaa103.Location: FWOSPlugin
+!
+! standard attribute drivers plugin
+!
+ad696000-5b34-11d1-b5ba-00a0c9064368.Location: PAppStdPlugin
+ad696001-5b34-11d1-b5ba-00a0c9064368.Location: PAppStdPlugin
+ad696002-5b34-11d1-b5ba-00a0c9064368.Location: PAppStdPlugin
diff --git a/resources/SALOMEDS_Resources b/resources/SALOMEDS_Resources
new file mode 100644
index 000000000..8aec5d87d
--- /dev/null
+++ b/resources/SALOMEDS_Resources
@@ -0,0 +1,10 @@
+formatlist:SALOME_STUDY
+
+SALOME_STUDY.Description: Stars Document Version 1.0
+SALOME_STUDY.FileExtension: std
+SALOME_STUDY.StoragePlugin: ad696000-5b34-11d1-b5ba-00a0c9064368
+SALOME_STUDY.RetrievalPlugin: ad696001-5b34-11d1-b5ba-00a0c9064368
+SALOME_STUDY-StandardSchema: ad696002-5b34-11d1-b5ba-00a0c9064368
+SALOME_STUDY-Standard.AttributeStoragePlugin: 47b0b826-d931-11d1-b5da-00a0c9064368
+SALOME_STUDY-Standard.AttributeRetrievalPlugin: 47b0b827-d931-11d1-b5da-00a0c9064368
+
diff --git a/resources/Tools_en.xml b/resources/Tools_en.xml
new file mode 100644
index 000000000..7457ddc90
--- /dev/null
+++ b/resources/Tools_en.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/Tools_fr.xml b/resources/Tools_fr.xml
new file mode 100644
index 000000000..7457ddc90
--- /dev/null
+++ b/resources/Tools_fr.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/back.xpm b/resources/back.xpm
new file mode 100644
index 000000000..7dc5b72cb
--- /dev/null
+++ b/resources/back.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+/* Drawn by Mark Donohoe for the K Desktop Environment */
+/* See http://www.kde.org */
+static char*back[]={
+"16 16 5 1",
+"# c #000000",
+"a c #ffffff",
+"c c #808080",
+"b c #c0c0c0",
+". c None",
+"................",
+".......#........",
+"......##........",
+".....#a#........",
+"....#aa########.",
+"...#aabaaaaaaa#.",
+"..#aabbbbbbbbb#.",
+"...#abbbbbbbbb#.",
+"...c#ab########.",
+"....c#a#ccccccc.",
+".....c##c.......",
+"......c#c.......",
+".......cc.......",
+"........c.......",
+"................",
+"......................"};
+
diff --git a/resources/cascade.png b/resources/cascade.png
new file mode 100644
index 000000000..9cd171538
Binary files /dev/null and b/resources/cascade.png differ
diff --git a/resources/channel.cfg b/resources/channel.cfg
new file mode 100755
index 000000000..afe59a75c
--- /dev/null
+++ b/resources/channel.cfg
@@ -0,0 +1,278 @@
+# =================================================================
+# PARAM SETTINGS
+#
+# ** standard.cfg :
+# sets up the daemon with default params as given
+# in the CosNotification specification.
+#
+# ** channel.cfg :
+# sets up daemon with default params which we prefer.
+#
+# You can choose which one to use, or copy one and edit it
+# to suit your needs.
+#
+# There are only a couple of differences:
+#
+# standard.cfg channel.cfg
+#
+# PacingInterval 0 1000 (1 second)
+# MaximumBatchSize 1 8
+#
+
+# =================================================================
+# omniNotify Configuration (Startup) Properties
+#
+# You can modify startup properties in one of 3 ways
+#
+# 1. copy this file to create your own .cfg file and edit it. Use
+# promp> notifd -i -c myconfig.cfg
+# to start notifd using the config file myconfig.cfg
+#
+# 2. set an environment variable; this will override any
+# config file settings. e.g., for tcsh,
+# promp> setenv LocalClockTDF 0
+# promp> notifd -i -c channel.cfg
+# This uses channel.cfg but changes the time zone to GMT
+#
+# 3. use explicit command-line param definitions
+# these override both the config file and any env variable settings
+# promp> setenv LocalClockTDF 0
+# promp> notifd -i -c channel.cfg -DLocalClockTDF=-60
+# This would set the time zone to 1 hour earlier than GMT
+#
+# omniNotify manages 3 kinds of properties
+#
+# * ServerQOS properties are properties that all channels share;
+# they cannot be changed on a per-channel basis.
+#
+# * AdminQoS properties are properties that can only be
+# set at the channel factory / channel level.
+#
+# * NotifQoS properties are properties that can be set at
+# many levels: channel factory, channel, admin, proxy;
+# some of these can also be changed on a per-event basis.
+#
+# The channel factory's AdminQoS and NotifQoS property settings
+# are used as defaults: when creating a channel these property
+# values are used unless specific overrides are provided in
+# with the channel creation request. Once a channel is created,
+# its AdminQoS and NotifQoS properties can be modified; the
+# factory's properties can also be modified. Note that once a
+# channel is created, its properties are independent of the
+# factory -- modifications to the channel properties do not affect
+# the factory defaults, and modifications to the factory defaults
+# do not affect the properties of already-created channels.
+#
+# The settings specified in config files, environment
+# variables and/or command line param definitions are used to
+# set the initial values for the server's ServerQoS properties and
+# for the channel factory's AdminQoS and NotifQoS
+# default properties. Since the default channel is created on startup,
+# it also takes its AdminQoS and NotifQoS properties from
+# these initial settings.
+#
+#==================================================================
+
+#==================================================================
+# Misc Startup Properties
+# -- these are essentially ServerQoS properties,
+# but are not currently implemented that way
+#==================================================================
+
+# Names to be assigned to the channel factory and channel created by
+# the notifd channel daemon
+
+ChannelFactoryName ChannelFactory
+DefaultChannelName EventChannel
+
+# Path names of the files used to store the string representation of
+# the above channel factory IOR and channel object IOR
+
+FactoryIORFileName /tmp/rdifact.ior
+ChannelIORFileName /tmp/rdichan.ior
+
+# If a file path is given for the following parameter, the file is
+# used for storing debugging information. 'stderr' and 'stdout' can be
+# used to direct output to standard error / standard output.
+
+#DebugLogFile ./debug.log
+DebugLogFile stderr
+
+# If a file path is given for the following parameter, the file is
+# used for storing report information. 'stderr' and 'stdout' can be
+# used to direct output to standard error / standard output.
+
+#ReportLogFile ./report.log
+ReportLogFile stdout
+
+# debug flags -- 0 is "off", 1 is "on"
+DebugDaemon 0
+DebugChannelFactory 0
+DebugFilter 0
+DebugChannel 0
+DebugConsumerAdmin 0
+DebugSupplireAdmin 0
+DebugConsumerProxy 0
+DebugSupplierProxy 0
+DebugEventQueue 0
+DebugRDIEvent 0
+DebugFilterAdmin 0
+DebugFilterEval 0
+DebugCosConsumerProxies 0
+DebugCosSupplierProxies 0
+DebugNotifQoS 0
+DebugAdminQoS 0
+DebugNotifQueue 0
+
+# report flags -- 0 is "off", 1 is "on"
+ReportChannelStats 1
+ReportQueueSizeStats 1
+ReportConnectedConsumers 1
+ReportConnectedSuppliers 1
+ReportConnectedFilters 1
+ReportUnconnectedFilters 1
+ReportEventRejections 1
+ReportEventDrops 1
+ReportNotifQoS 1
+ReportAdminQoS 1
+ReportServerQoS 1
+
+#==================================================================
+# Initial ServerQoS Properties
+#==================================================================
+
+# Each ConsumerAdmin and SupplierAdmin object is assigned to a group
+# and each group is processed by only one thread. The number of such
+# groups and the number of threads that handle the groups have to be
+# at least 1. In addition, the number of threads should not exceed
+# the number of groups
+
+NumAdminGroups 2
+NumAdminThreads 2
+
+# notifd may split the filter evaluation processing in two stages. In
+# this case, a second thread pool is used for evaluating proxy-level
+# filters. The size of the pool is controled by the following
+
+NumProxyThreads 0
+
+# The following variables control the number of threads created for
+# pushing matched events to push-style consumers and pulling events
+# from pull-style suppliers. If these values are 0, each consumer
+# and supplier is assigned its own thread.
+
+NumPushThreads 4
+NumPullThreads 2
+
+# The following variables control the number of threads created for
+# notifying suppliers of subscription changes (using subscription_change)
+# and for notifying consumers of offer changes (using offer_change).
+# CAREFUL: Setting NumSChangeThreads to zero DISABLES
+# the sending of subscription_change messages!
+# CAREFUL: Setting NumOChangeThreads to zero DISABLES
+# the sending of offer_change messages
+
+NumOChangeThreads 1
+NumSChangeThreads 1
+
+# For pull style suppliers, the time period (milliseconds) between
+# pulls is controlled by the following variable.
+# A value of 0 corresponds to continuous pulling
+
+PullEventPeriod 100
+
+# Period in seconds used by the garbage collector of the event queue
+# The minimum number that can be used is 1
+
+QueueGCPeriod 300
+
+# The next entry specifies the time period (in seconds) between
+# each 'report' (the Report.. flags above control what gets reported).
+# The channel may have a built-in minimum, e.g, even if you say 0,
+# the channel may choose a 10 second period. (300 seconds = 5 mins)
+
+ReportingInterval 300
+
+# Description of local clock values returned from omnithread::get_time.
+# These values are here because we do not know a portable way to get
+# the clock accuracy and the time zone across all Unix flavors and
+# Windows. Let us know if you have a portable approach.
+#
+# LocalClockInaccLo/Hi: local clock inaccuracy in units of 100ns
+# (must fit in 48 bits, 32 for Lo, 16 for Hi)
+# LocalClockTDF: local time zone expressed in minutes west of
+# greenwhich meridian; 300=Eastern time zone, USA
+LocalClockInaccLo 0
+LocalClockInaccHi 0
+LocalClockTDF 300
+
+#==================================================================
+# Initial Default AdminQoS Properties
+#==================================================================
+
+# Maximum number of events that will be queued by the Channel before
+# before it begins discarding events or rejecting new ones. A value
+# of 0 does not place any upper limit.
+
+MaxQueueLength 0
+
+# The maximum number of Consumers that can be connected to a Channel
+# at any given time. A value of 0 does not place any upper limit.
+
+MaxConsumers 0
+
+# The maximum number of Suppliers that can be connected to a Channel
+# at any given time. A value of 0 does not place any upper limit.
+
+MaxSuppliers 0
+
+# If 1, newly announced events will be discarded when the number of
+# undelivered events in a Channel is equal to 'MaxQueueLength'. If
+# 0, newly announced events cause existing events to be discarded
+# according to the 'DiscardPolicy' QoS.
+
+RejectNewEvents 1
+
+#==================================================================
+# Initial Default NotifQoS Properties
+#==================================================================
+
+# EventReliability and ConnectionReliability can take the values:
+# 0 --> CosNotification::BestEffort
+# 1 --> CosNotification::Persistent
+# OrderPolicy can take the values:
+# 0 --> CosNotification::AnyOrder
+# 1 --> CosNotification::FifoOrder
+# 2 --> CosNotification::PriorityOrder
+# 3 --> CosNotification::DeadlineOrder
+# DiscardPolicy can take any of the above values and, in addition,
+# 4 --> CosNotification::LifoOrder
+# StartTimeSupported and StopTimeSupported are boolean and can take
+# the values
+# 0 --> FALSE
+# 1 --> TRUE
+#
+# NOTE: the current notifd implementation does NOT support all QoS
+# settings. In particular, it only supports the following:
+# EventReliability 0
+# ConnectionReliability 0
+# StartTimeSupported 0
+# StopTimeSupported 0
+
+# Note -- PacingInterval can be set programmatically to any
+# TimeBase::TimeT value (units = 100s of nanoseconds). Here you
+# set number of MILLISECONDS, e.g., a value of 1000 means send a batch
+# roughly every 1 second (or when MaxBatchSize is reached).
+
+EventReliability 0
+ConnectionReliability 0
+Priority 0
+Timeout 0
+StartTimeSupported 0
+StopTimeSupported 0
+OrderPolicy 0
+DiscardPolicy 0
+PacingInterval 1000
+MaxEventsPerConsumer 0
+MaximumBatchSize 8
+
diff --git a/resources/close.png b/resources/close.png
new file mode 100644
index 000000000..b7126e002
Binary files /dev/null and b/resources/close.png differ
diff --git a/resources/config b/resources/config
new file mode 100644
index 000000000..692539760
--- /dev/null
+++ b/resources/config
@@ -0,0 +1 @@
+language=en
\ No newline at end of file
diff --git a/resources/copy.png b/resources/copy.png
new file mode 100644
index 000000000..1ba2eca28
Binary files /dev/null and b/resources/copy.png differ
diff --git a/resources/default.png b/resources/default.png
new file mode 100644
index 000000000..fdc199ae1
Binary files /dev/null and b/resources/default.png differ
diff --git a/resources/dl_delete.png b/resources/dl_delete.png
new file mode 100644
index 000000000..a7a0ad8f9
Binary files /dev/null and b/resources/dl_delete.png differ
diff --git a/resources/dl_insert.png b/resources/dl_insert.png
new file mode 100644
index 000000000..54e108a88
Binary files /dev/null and b/resources/dl_insert.png differ
diff --git a/resources/dl_movedown.png b/resources/dl_movedown.png
new file mode 100644
index 000000000..9c872192d
Binary files /dev/null and b/resources/dl_movedown.png differ
diff --git a/resources/dl_moveup.png b/resources/dl_moveup.png
new file mode 100644
index 000000000..45b275007
Binary files /dev/null and b/resources/dl_moveup.png differ
diff --git a/resources/forward.xpm b/resources/forward.xpm
new file mode 100644
index 000000000..2ed813482
--- /dev/null
+++ b/resources/forward.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+/* Drawn by Mark Donohoe for the K Desktop Environment */
+/* See http://www.kde.org */
+static char*forward[]={
+"16 16 5 1",
+"# c #000000",
+"a c #ffffff",
+"c c #808080",
+"b c #c0c0c0",
+". c None",
+"................",
+"................",
+".........#......",
+".........##.....",
+".........#a#....",
+"..########aa#...",
+"..#aaaaaaabaa#..",
+"..#bbbbbbbbbaa#.",
+"..#bbbbbbbbba#..",
+"..########ba#c..",
+"..ccccccc#a#c...",
+"........c##c....",
+"........c#c.....",
+"........cc......",
+"........c.......",
+"................",
+"................"};
+
diff --git a/resources/help.png b/resources/help.png
new file mode 100644
index 000000000..e57336285
Binary files /dev/null and b/resources/help.png differ
diff --git a/resources/home.xpm b/resources/home.xpm
new file mode 100644
index 000000000..9c1369d9f
--- /dev/null
+++ b/resources/home.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+/* Drawn by Mark Donohoe for the K Desktop Environment */
+/* See http://www.kde.org */
+static char*home[]={
+"16 16 4 1",
+"# c #000000",
+"a c #ffffff",
+"b c #c0c0c0",
+". c None",
+"........... ....",
+" ....##.......",
+"..#...####......",
+"..#..#aabb#.....",
+"..#.#aaaabb#....",
+"..##aaaaaabb#...",
+"..#aaaaaaaabb#..",
+".#aaaaaaaaabbb#.",
+"###aaaaaaaabb###",
+"..#aaaaaaaabb#..",
+"..#aaa###aabb#..",
+"..#aaa#.#aabb#..",
+"..#aaa#.#aabb#..",
+"..#aaa#.#aabb#..",
+"..#aaa#.#aabb#..",
+"..#####.######..",
+"................"};
+
diff --git a/resources/new.png b/resources/new.png
new file mode 100644
index 000000000..953757a62
Binary files /dev/null and b/resources/new.png differ
diff --git a/resources/open.png b/resources/open.png
new file mode 100644
index 000000000..d9953b6a7
Binary files /dev/null and b/resources/open.png differ
diff --git a/resources/paste.png b/resources/paste.png
new file mode 100644
index 000000000..d86ece38b
Binary files /dev/null and b/resources/paste.png differ
diff --git a/resources/plot2d_dump.png b/resources/plot2d_dump.png
new file mode 100644
index 000000000..e8bec70ca
Binary files /dev/null and b/resources/plot2d_dump.png differ
diff --git a/resources/plot2d_fitall.png b/resources/plot2d_fitall.png
new file mode 100644
index 000000000..9a70952a1
Binary files /dev/null and b/resources/plot2d_fitall.png differ
diff --git a/resources/plot2d_fitarea.png b/resources/plot2d_fitarea.png
new file mode 100644
index 000000000..f54ae7783
Binary files /dev/null and b/resources/plot2d_fitarea.png differ
diff --git a/resources/plot2d_legend.png b/resources/plot2d_legend.png
new file mode 100644
index 000000000..cdcc1e0d8
Binary files /dev/null and b/resources/plot2d_legend.png differ
diff --git a/resources/plot2d_linear.png b/resources/plot2d_linear.png
new file mode 100644
index 000000000..d79f21426
Binary files /dev/null and b/resources/plot2d_linear.png differ
diff --git a/resources/plot2d_linear_y.png b/resources/plot2d_linear_y.png
new file mode 100644
index 000000000..e396eac2e
Binary files /dev/null and b/resources/plot2d_linear_y.png differ
diff --git a/resources/plot2d_lines.png b/resources/plot2d_lines.png
new file mode 100644
index 000000000..6baf57344
Binary files /dev/null and b/resources/plot2d_lines.png differ
diff --git a/resources/plot2d_log.png b/resources/plot2d_log.png
new file mode 100644
index 000000000..aecca8c13
Binary files /dev/null and b/resources/plot2d_log.png differ
diff --git a/resources/plot2d_log_y.png b/resources/plot2d_log_y.png
new file mode 100644
index 000000000..4e1e21147
Binary files /dev/null and b/resources/plot2d_log_y.png differ
diff --git a/resources/plot2d_pan.png b/resources/plot2d_pan.png
new file mode 100644
index 000000000..786d9cb3e
Binary files /dev/null and b/resources/plot2d_pan.png differ
diff --git a/resources/plot2d_points.png b/resources/plot2d_points.png
new file mode 100644
index 000000000..4847c4e8b
Binary files /dev/null and b/resources/plot2d_points.png differ
diff --git a/resources/plot2d_settings.png b/resources/plot2d_settings.png
new file mode 100644
index 000000000..d291da9dc
Binary files /dev/null and b/resources/plot2d_settings.png differ
diff --git a/resources/plot2d_splines.png b/resources/plot2d_splines.png
new file mode 100644
index 000000000..c39d4321c
Binary files /dev/null and b/resources/plot2d_splines.png differ
diff --git a/resources/plot2d_zoom.png b/resources/plot2d_zoom.png
new file mode 100644
index 000000000..35e185b06
Binary files /dev/null and b/resources/plot2d_zoom.png differ
diff --git a/resources/print.png b/resources/print.png
new file mode 100644
index 000000000..37ca7c24d
Binary files /dev/null and b/resources/print.png differ
diff --git a/resources/redo.png b/resources/redo.png
new file mode 100644
index 000000000..ac72e5c27
Binary files /dev/null and b/resources/redo.png differ
diff --git a/resources/reset.png b/resources/reset.png
new file mode 100644
index 000000000..ccda81cb1
Binary files /dev/null and b/resources/reset.png differ
diff --git a/resources/salomeCommonModel.spml b/resources/salomeCommonModel.spml
new file mode 100644
index 000000000..09b4d901f
--- /dev/null
+++ b/resources/salomeCommonModel.spml
@@ -0,0 +1,49 @@
+#definition of the model
+salomeCommonModel = Model(id="salomeCommonModel")
+
+# Description of all intrinsic types
+dataString = Intrinsic(id='Datastring',
+ modelOwner=salomeCommonModel,
+ relatedType='STRING')
+identification = Intrinsic(id='Identification',
+ modelOwner=salomeCommonModel,
+ relatedType='STRING')
+salomeRef = Intrinsic(id='SalomeRef',
+ modelOwner=salomeCommonModel,
+ relatedType='SALOME_OBJECT_REFERENCE')
+dataReal = Intrinsic(id='Datareal',
+ modelOwner=salomeCommonModel,
+ relatedType='REAL')
+dataInteger = Intrinsic(id='Datainteger',
+ modelOwner=salomeCommonModel,
+ relatedType='INTEGER')
+
+# Description of units.
+units = Entity(id='Units',
+ modelOwner=salomeCommonModel,
+ stereotype='CONCRETE')
+units_name = SimpleField(id='name',
+ relatedType=dataString,
+ definitionMode='FORCED',
+ stereotype='IDENTIFICATION',
+ uiInformation=AttributeUi(defaultLabel='Name',
+ defaultComment='Name of the unit',
+ reentrantMode='NOT_REENTRANT'),
+ datatype='PERSISTENT',
+ evaluationMode='NONE')
+units_abreviation = SimpleField(id='abreviation',
+ relatedType=dataString,
+ definitionMode='FORCED',
+ stereotype='AGREGATION',
+ uiInformation=AttributeUi(defaultLabel='abreviation',
+ defaultComment='Abreviation',
+ reentrantMode='NOT_REENTRANT'),
+ datatype='PERSISTENT',
+ evaluationMode='NONE')
+
+units.fields = [units_name,units_abreviation]
+
+units.uiInformation = EntityUi(defaultLabel='Units definition',
+ defaultComment='Definition of units',
+ reentrantMode='REENTRANT')
+
diff --git a/resources/save.png b/resources/save.png
new file mode 100644
index 000000000..330493fa2
Binary files /dev/null and b/resources/save.png differ
diff --git a/resources/select1.png b/resources/select1.png
new file mode 100644
index 000000000..a1a4ee1d5
Binary files /dev/null and b/resources/select1.png differ
diff --git a/resources/tile.png b/resources/tile.png
new file mode 100644
index 000000000..b3e6d7b5a
Binary files /dev/null and b/resources/tile.png differ
diff --git a/resources/uc_add.png b/resources/uc_add.png
new file mode 100644
index 000000000..c36d70820
Binary files /dev/null and b/resources/uc_add.png differ
diff --git a/resources/uc_clear.png b/resources/uc_clear.png
new file mode 100644
index 000000000..8abb8917f
Binary files /dev/null and b/resources/uc_clear.png differ
diff --git a/resources/uc_current.png b/resources/uc_current.png
new file mode 100644
index 000000000..1c1e61fe3
Binary files /dev/null and b/resources/uc_current.png differ
diff --git a/resources/uc_del.png b/resources/uc_del.png
new file mode 100644
index 000000000..ed6c97cee
Binary files /dev/null and b/resources/uc_del.png differ
diff --git a/resources/uc_new.png b/resources/uc_new.png
new file mode 100644
index 000000000..ae849de92
Binary files /dev/null and b/resources/uc_new.png differ
diff --git a/resources/undo.png b/resources/undo.png
new file mode 100644
index 000000000..61b19777e
Binary files /dev/null and b/resources/undo.png differ
diff --git a/resources/view_back.png b/resources/view_back.png
new file mode 100644
index 000000000..436f2da15
Binary files /dev/null and b/resources/view_back.png differ
diff --git a/resources/view_bottom.png b/resources/view_bottom.png
new file mode 100644
index 000000000..a18011c47
Binary files /dev/null and b/resources/view_bottom.png differ
diff --git a/resources/view_camera_dump.png b/resources/view_camera_dump.png
new file mode 100644
index 000000000..8eb63e09b
Binary files /dev/null and b/resources/view_camera_dump.png differ
diff --git a/resources/view_fitall.png b/resources/view_fitall.png
new file mode 100644
index 000000000..c09ff94ad
Binary files /dev/null and b/resources/view_fitall.png differ
diff --git a/resources/view_fitarea.png b/resources/view_fitarea.png
new file mode 100644
index 000000000..5b79594e7
Binary files /dev/null and b/resources/view_fitarea.png differ
diff --git a/resources/view_front.png b/resources/view_front.png
new file mode 100644
index 000000000..c5dfc00d5
Binary files /dev/null and b/resources/view_front.png differ
diff --git a/resources/view_glpan.png b/resources/view_glpan.png
new file mode 100644
index 000000000..c23322a4a
Binary files /dev/null and b/resources/view_glpan.png differ
diff --git a/resources/view_left.png b/resources/view_left.png
new file mode 100644
index 000000000..dbc06cc6e
Binary files /dev/null and b/resources/view_left.png differ
diff --git a/resources/view_pan.png b/resources/view_pan.png
new file mode 100644
index 000000000..038fba118
Binary files /dev/null and b/resources/view_pan.png differ
diff --git a/resources/view_reset.png b/resources/view_reset.png
new file mode 100644
index 000000000..12850643e
Binary files /dev/null and b/resources/view_reset.png differ
diff --git a/resources/view_right.png b/resources/view_right.png
new file mode 100644
index 000000000..598def41d
Binary files /dev/null and b/resources/view_right.png differ
diff --git a/resources/view_rotate.png b/resources/view_rotate.png
new file mode 100644
index 000000000..80926c545
Binary files /dev/null and b/resources/view_rotate.png differ
diff --git a/resources/view_top.png b/resources/view_top.png
new file mode 100644
index 000000000..ebbf34da5
Binary files /dev/null and b/resources/view_top.png differ
diff --git a/resources/view_triedre.png b/resources/view_triedre.png
new file mode 100644
index 000000000..3eed48db8
Binary files /dev/null and b/resources/view_triedre.png differ
diff --git a/resources/view_zoom.png b/resources/view_zoom.png
new file mode 100644
index 000000000..b46573914
Binary files /dev/null and b/resources/view_zoom.png differ
diff --git a/salome_adm/unix/Doxyfile b/salome_adm/unix/Doxyfile
new file mode 100644
index 000000000..82aa83c66
--- /dev/null
+++ b/salome_adm/unix/Doxyfile
@@ -0,0 +1,808 @@
+# Doxyfile 1.2.8.1
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# General configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME =
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY =
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French,
+# German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish,
+# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish.
+
+OUTPUT_LANGUAGE = English
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = YES
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these class will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. It is allowed to use relative paths in the argument list.
+
+STRIP_FROM_PATH =
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = NO
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a class diagram (in Html and LaTeX) for classes with base or
+# super classes. Setting the tag to NO turns the diagrams off.
+
+CLASS_DIAGRAMS = YES
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+
+SOURCE_BROWSER = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES = YES
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower case letters. If set to YES upper case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# users are adviced to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS = YES
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like the Qt-style comments (thus requiring an
+# explict @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# reimplements.
+
+INHERIT_DOCS = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 8
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consist of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C.
+# For instance some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text.
+
+WARN_FORMAT =
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT = /home01/prascle/devSalome/rootsrc
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+FILE_PATTERNS = *idl *.cxx *.hxx *.hh *.h *.c *.cc *.py
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE =
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+
+EXCLUDE_PATTERNS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS =
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command , where
+# is the value of the INPUT_FILTER tag, and is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.
+
+INPUT_FILTER =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse.
+
+FILTER_SOURCE_FILES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = /home01/prascle/devSalome/doc/html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet
+
+HTML_STYLESHEET =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the Html help documentation and to the tree view.
+
+TOC_EXPAND = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript and frames is required (for instance Netscape 4.0+
+# or Internet explorer 4.0+).
+
+GENERATE_TREEVIEW = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX = YES
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT = /home01/prascle/devSalome/doc/latex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimised for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT =
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assigments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT =
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION =
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_PREDEFINED tags.
+
+EXPAND_ONLY_PREDEF = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed.
+
+PREDEFINED =
+
+# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED =
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tagfiles.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS = NO
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT = NO
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY = YES
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found on the path.
+
+DOT_PATH =
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_WIDTH = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT = 1024
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermedate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE = NO
+
+# The CGI_NAME tag should be the name of the CGI script that
+# starts the search engine (doxysearch) with the correct parameters.
+# A script with this name will be generated by doxygen.
+
+CGI_NAME =
+
+# The CGI_URL tag should be the absolute URL to the directory where the
+# cgi binaries are located. See the documentation of your http daemon for
+# details.
+
+CGI_URL =
+
+# The DOC_URL tag should be the absolute URL to the directory where the
+# documentation is located. If left blank the absolute path to the
+# documentation, with file:// prepended to it, will be used.
+
+DOC_URL =
+
+# The DOC_ABSPATH tag should be the absolute path to the directory where the
+# documentation is located. If left blank the directory on the local machine
+# will be used.
+
+DOC_ABSPATH =
+
+# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
+# is installed.
+
+BIN_ABSPATH =
+
+# The EXT_DOC_PATHS tag can be used to specify one or more paths to
+# documentation generated for other projects. This allows doxysearch to search
+# the documentation for these projects as well.
+
+EXT_DOC_PATHS =
diff --git a/salome_adm/unix/F77config.h.in b/salome_adm/unix/F77config.h.in
new file mode 100644
index 000000000..77b6c51f5
--- /dev/null
+++ b/salome_adm/unix/F77config.h.in
@@ -0,0 +1,8 @@
+
+#ifndef F77_FUNC
+
+#define F77_FUNC(name,NAME) @F77_FUNC_NAME@
+#define F77_FUNC_(name,NAME) @F77_FUNC_NAME_@
+
+#endif
+
diff --git a/salome_adm/unix/SALOMEconfig.h.in b/salome_adm/unix/SALOMEconfig.h.in
new file mode 100644
index 000000000..0bf652556
--- /dev/null
+++ b/salome_adm/unix/SALOMEconfig.h.in
@@ -0,0 +1,6 @@
+#define DEBUG
+
+#define QUOTE(x) #x
+#define CORBA_CLIENT_HEADER(x) QUOTE(x@IDL_CLN_H@)
+#define CORBA_SERVER_HEADER(x) QUOTE(x@IDL_SRV_H@)
+
diff --git a/salome_adm/unix/config_files/ac_cc_warnings.m4 b/salome_adm/unix/config_files/ac_cc_warnings.m4
new file mode 100644
index 000000000..5de987e57
--- /dev/null
+++ b/salome_adm/unix/config_files/ac_cc_warnings.m4
@@ -0,0 +1,104 @@
+dnl Synopsis
+dnl
+dnl AC_CC_WARNINGS([ANSI])
+dnl
+dnl Version
+dnl
+dnl 1.1 (2000/12/31)
+dnl
+dnl Author
+dnl
+dnl Ville Laurikari
+dnl
+dnl Description
+dnl
+dnl Enables a reasonable set of warnings for the C compiler.
+dnl Optionally, if the first argument is nonempty, turns on
+dnl flags which enforce and/or enable proper ANSI C if such
+dnl flags are known to the compiler used.
+dnl
+dnl Currently this macro knows about GCC, Solaris C compiler,
+dnl Digital Unix C compiler, C for AIX Compiler, HP-UX C
+dnl compiler, and IRIX C compiler.
+
+AC_DEFUN([AC_CC_WARNINGS], [
+ ansi=$1
+ if test -z "$ansi"; then
+ msg="for C compiler warning flags"
+ else
+ msg="for C compiler warning and ANSI conformance flags"
+ fi
+ AC_CACHE_CHECK($msg, ac_cv_prog_cc_warnings, [
+ if test -n "$CC"; then
+ cat > conftest.c <&1 | grep "Xc.*strict ANSI C" > /dev/null 2>&1 &&
+ $CC -c -v -Xc conftest.c > /dev/null 2>&1 &&
+ test -f conftest.o; then
+ if test -z "$ansi"; then
+ ac_cv_prog_cc_warnings="-v"
+ else
+ ac_cv_prog_cc_warnings="-v -Xc"
+ fi
+
+ dnl HP-UX C compiler
+ elif $CC > /dev/null 2>&1 &&
+ $CC -c -Aa +w1 conftest.c > /dev/null 2>&1 &&
+ test -f conftest.o; then
+ if test -z "$ansi"; then
+ ac_cv_prog_cc_warnings="+w1"
+ else
+ ac_cv_prog_cc_warnings="+w1 -Aa"
+ fi
+
+ dnl Digital Unix C compiler
+ elif ! $CC > /dev/null 2>&1 &&
+ $CC -c -verbose -w0 -warnprotos -std1 conftest.c > /dev/null 2>&1 &&
+ test -f conftest.o; then
+ if test -z "$ansi"; then
+ ac_cv_prog_cc_warnings="-verbose -w0 -warnprotos"
+ else
+ ac_cv_prog_cc_warnings="-verbose -w0 -warnprotos -std1"
+ fi
+
+ dnl C for AIX Compiler
+ elif $CC > /dev/null 2>&1 | grep AIX > /dev/null 2>&1 &&
+ $CC -c -qlanglvl=ansi -qinfo=all conftest.c > /dev/null 2>&1 &&
+ test -f conftest.o; then
+ if test -z "$ansi"; then
+ ac_cv_prog_cc_warnings="-qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd"
+ else
+ ac_cv_prog_cc_warnings="-qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd -qlanglvl=ansi"
+ fi
+
+ dnl IRIX C compiler
+ elif $CC -fullwarn -ansi -ansiE > /dev/null 2>&1 &&
+ test -f conftest.o; then
+ if test -z "$ansi"; then
+ ac_cv_prog_cc_warnings="-fullwarn"
+ else
+ ac_cv_prog_cc_warnings="-fullwarn -ansi -ansiE"
+ fi
+
+ fi
+ rm -f conftest.*
+ fi
+ if test -n "$ac_cv_prog_cc_warnings"; then
+ CFLAGS="$CFLAGS $ac_cv_prog_cc_warnings"
+ CXXFLAGS="$CXXFLAGS $ac_cv_prog_cc_warnings"
+ else
+ ac_cv_prog_cc_warnings="unknown"
+ fi
+ ])
+])
\ No newline at end of file
diff --git a/salome_adm/unix/config_files/ac_cxx_bool.m4 b/salome_adm/unix/config_files/ac_cxx_bool.m4
new file mode 100644
index 000000000..c17ac0b28
--- /dev/null
+++ b/salome_adm/unix/config_files/ac_cxx_bool.m4
@@ -0,0 +1,27 @@
+dnl @synopsis AC_CXX_BOOL
+dnl
+dnl If the compiler recognizes bool as a separate built-in type,
+dnl define HAVE_BOOL. Note that a typedef is not a separate
+dnl type since you cannot overload a function such that it accepts either
+dnl the basic type or the typedef.
+dnl
+dnl @version $Id$
+dnl @author Luc Maisonobe
+dnl
+AC_DEFUN(AC_CXX_BOOL,
+[AC_CACHE_CHECK(whether the compiler recognizes bool as a built-in type,
+ac_cv_cxx_bool,
+[AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([
+int f(int x){return 1;}
+int f(char x){return 1;}
+int f(bool x){return 1;}
+],[bool b = true; return f(b);],
+ ac_cv_cxx_bool=yes, ac_cv_cxx_bool=no)
+ AC_LANG_RESTORE
+])
+if test "$ac_cv_cxx_bool" = yes; then
+ AC_DEFINE(HAVE_BOOL,,[define if bool is a built-in type])
+fi
+])
diff --git a/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 b/salome_adm/unix/config_files/ac_cxx_depend_flag.m4
new file mode 100644
index 000000000..4d8e06081
--- /dev/null
+++ b/salome_adm/unix/config_files/ac_cxx_depend_flag.m4
@@ -0,0 +1,100 @@
+dnl @synopsis AC_C_DEPEND_FLAG
+dnl
+dnl define C_DEPEND_FLAG
+dnl define CXX_DEPEND_FLAG
+dnl
+dnl @version $Id$
+dnl @author Marc Tajchman
+dnl
+AC_DEFUN(AC_DEPEND_FLAG,
+[AC_CACHE_CHECK(which flag for dependency information generation,
+ac_cv_depend_flag,
+[AC_LANG_SAVE
+ AC_LANG_C
+ echo "conftest.o: conftest.c" > conftest.verif
+ echo "int main() { return 0; }" > conftest.c
+
+ C_DEPEND_FLAG=
+ for ac_C_DEPEND_FLAG in -xM -MM -M ; do
+
+ rm -f conftest.d conftest.err
+ ${CC-cc} ${ac_C_DEPEND_FLAG} -c conftest.c 1> conftest.d 2> conftest.err
+ if test -f conftest.u ; then
+ mv conftest.u conftest.d
+ fi
+
+ rm -f conftest
+ diff -b -B conftest.d conftest.verif > conftest
+ if test ! -s conftest ; then
+ C_DEPEND_FLAG=${ac_C_DEPEND_FLAG}
+ break
+ fi
+ done
+
+dnl use gcc option -MG : asume unknown file will be construct later
+ rm -f conftest.d conftest.err
+ ${CC-cc} ${C_DEPEND_FLAG} -MG -c conftest.c 1> conftest.d 2> conftest.err
+ if test -f conftest.u ; then
+ mv conftest.u conftest.d
+ fi
+ rm -f conftest
+ diff -b -B conftest.d conftest.verif > conftest
+ if test ! -s conftest ; then
+ C_DEPEND_FLAG=${C_DEPEND_FLAG}" -MG"
+ fi
+
+ rm -f conftest*
+ if test "x${C_DEPEND_FLAG}" = "x" ; then
+ echo "cannot determine flag (C language)"
+ exit
+ fi
+
+ echo -n " C : " ${C_DEPEND_FLAG}
+
+ AC_LANG_CPLUSPLUS
+ echo "conftest.o: conftest.cxx" > conftest.verif
+ echo "int main() { return 0; }" > conftest.cxx
+
+ CXX_DEPEND_FLAG=
+ for ac_CXX_DEPEND_FLAG in -xM -MM -M ; do
+
+ rm -f conftest.d conftest.err
+ ${CXX-c++} ${ac_CXX_DEPEND_FLAG} -c conftest.cxx 1> conftest.d 2> conftest.err
+ if test -f conftest.u ; then
+ mv conftest.u conftest.d
+ fi
+
+ rm -f conftest
+ diff -b -B conftest.d conftest.verif > conftest
+ if test ! -s conftest ; then
+ CXX_DEPEND_FLAG=${ac_CXX_DEPEND_FLAG}
+ break
+ fi
+ done
+
+dnl use g++ option -MG : asume unknown file will be construct later
+ rm -f conftest.d conftest.err
+ ${CXX-c++} ${CXX_DEPEND_FLAG} -MG -c conftest.cxx 1> conftest.d 2> conftest.err
+ if test -f conftest.u ; then
+ mv conftest.u conftest.d
+ fi
+ rm -f conftest
+ diff -b -B conftest.d conftest.verif > conftest
+ if test ! -s conftest ; then
+ CXX_DEPEND_FLAG=${CXX_DEPEND_FLAG}" -MG"
+ fi
+
+
+ rm -f conftest*
+ if test "x${CXX_DEPEND_FLAG}" = "x" ; then
+ echo "cannot determine flag (C++ language)"
+ exit
+ fi
+
+ echo -n " C++ : " ${CXX_DEPEND_FLAG}
+ AC_LANG_RESTORE
+
+ AC_SUBST(C_DEPEND_FLAG)
+ AC_SUBST(CXX_DEPEND_FLAG)
+])
+])
diff --git a/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 b/salome_adm/unix/config_files/ac_cxx_have_sstream.m4
new file mode 100644
index 000000000..8ddbe5727
--- /dev/null
+++ b/salome_adm/unix/config_files/ac_cxx_have_sstream.m4
@@ -0,0 +1,24 @@
+dnl @synopsis AC_CXX_HAVE_SSTREAM
+dnl
+dnl If the C++ library has a working stringstream, define HAVE_SSTREAM.
+dnl
+dnl @author Ben Stanley
+dnl @version $Id$
+dnl
+dnl modified by Marc Tajchman (CEA) - 10/10/2002
+dnl
+AC_DEFUN([AC_CXX_HAVE_SSTREAM],
+[AC_CACHE_CHECK(whether the compiler has stringstream,
+HAVE_SSTREAM,
+[AC_REQUIRE([AC_CXX_NAMESPACES])
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([#include
+#ifdef HAVE_NAMESPACES
+using namespace std;
+#endif],[stringstream message; message << "Hello"; return 0;],
+ HAVE_SSTREAM=yes, HAVE_SSTREAM=no)
+ AC_LANG_RESTORE
+])
+AC_SUBST(HAVE_SSTREAM)
+])
diff --git a/salome_adm/unix/config_files/ac_cxx_mutable.m4 b/salome_adm/unix/config_files/ac_cxx_mutable.m4
new file mode 100644
index 000000000..b0ce3c032
--- /dev/null
+++ b/salome_adm/unix/config_files/ac_cxx_mutable.m4
@@ -0,0 +1,27 @@
+dnl @synopsis AC_CXX_MUTABLE
+dnl
+dnl If the compiler allows modifying class data members flagged with
+dnl the mutable keyword even in const objects (for example in the
+dnl body of a const member function), define HAVE_MUTABLE.
+dnl
+dnl @version $Id$
+dnl @author Luc Maisonobe
+dnl
+AC_DEFUN(AC_CXX_MUTABLE,
+[AC_CACHE_CHECK(whether the compiler supports the mutable keyword,
+ac_cv_cxx_mutable,
+[AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([
+class A { mutable int i;
+ public:
+ int f (int n) const { i = n; return i; }
+ };
+],[A a; return a.f (1);],
+ ac_cv_cxx_mutable=yes, ac_cv_cxx_mutable=no)
+ AC_LANG_RESTORE
+])
+if test "$ac_cv_cxx_mutable" = yes; then
+ AC_DEFINE(HAVE_MUTABLE,,[define if the compiler supports the mutable keyword])
+fi
+])
diff --git a/salome_adm/unix/config_files/ac_cxx_namespaces.m4 b/salome_adm/unix/config_files/ac_cxx_namespaces.m4
new file mode 100644
index 000000000..ca26c7d30
--- /dev/null
+++ b/salome_adm/unix/config_files/ac_cxx_namespaces.m4
@@ -0,0 +1,22 @@
+dnl @synopsis AC_CXX_NAMESPACES
+dnl
+dnl If the compiler can prevent names clashes using namespaces, define
+dnl HAVE_NAMESPACES.
+dnl
+dnl @version $Id$
+dnl @author Luc Maisonobe
+dnl
+AC_DEFUN(AC_CXX_NAMESPACES,
+[AC_CACHE_CHECK(whether the compiler implements namespaces,
+ac_cv_cxx_namespaces,
+[AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([namespace Outer { namespace Inner { int i = 0; }}],
+ [using namespace Outer::Inner; return i;],
+ ac_cv_cxx_namespaces=yes, ac_cv_cxx_namespaces=no)
+ AC_LANG_RESTORE
+])
+if test "$ac_cv_cxx_namespaces" = yes; then
+ AC_DEFINE(HAVE_NAMESPACES,,[define if the compiler implements namespaces])
+fi
+])
diff --git a/salome_adm/unix/config_files/ac_cxx_partial_specialization.m4 b/salome_adm/unix/config_files/ac_cxx_partial_specialization.m4
new file mode 100644
index 000000000..6711debc0
--- /dev/null
+++ b/salome_adm/unix/config_files/ac_cxx_partial_specialization.m4
@@ -0,0 +1,26 @@
+dnl @synopsis AC_CXX_PARTIAL_SPECIALIZATION
+dnl
+dnl If the compiler supports partial specialization,
+dnl define HAVE_PARTIAL_SPECIALIZATION.
+dnl
+dnl @version $Id$
+dnl @author Luc Maisonobe
+dnl
+AC_DEFUN(AC_CXX_PARTIAL_SPECIALIZATION,
+[AC_CACHE_CHECK(whether the compiler supports partial specialization,
+ac_cv_cxx_partial_specialization,
+[AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([
+template class A { public : enum e { z = 0 }; };
+template class A { public : enum e { z = 1 }; };
+template class A { public : enum e { z = 2 }; };
+],[return (A::z == 0) && (A::z == 1) && (A::z == 2);],
+ ac_cv_cxx_partial_specialization=yes, ac_cv_cxx_partial_specialization=no)
+ AC_LANG_RESTORE
+])
+if test "$ac_cv_cxx_partial_specialization" = yes; then
+ AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION,,
+ [define if the compiler supports partial specialization])
+fi
+])
diff --git a/salome_adm/unix/config_files/ac_cxx_typename.m4 b/salome_adm/unix/config_files/ac_cxx_typename.m4
new file mode 100644
index 000000000..8604c4374
--- /dev/null
+++ b/salome_adm/unix/config_files/ac_cxx_typename.m4
@@ -0,0 +1,21 @@
+dnl @synopsis AC_CXX_TYPENAME
+dnl
+dnl If the compiler recognizes the typename keyword, define HAVE_TYPENAME.
+dnl
+dnl @version $Id$
+dnl @author Luc Maisonobe
+dnl
+AC_DEFUN(AC_CXX_TYPENAME,
+[AC_CACHE_CHECK(whether the compiler recognizes typename,
+ac_cv_cxx_typename,
+[AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([templateclass X {public:X(){}};],
+[X z; return 0;],
+ ac_cv_cxx_typename=yes, ac_cv_cxx_typename=no)
+ AC_LANG_RESTORE
+])
+if test "$ac_cv_cxx_typename" = yes; then
+ AC_DEFINE(HAVE_TYPENAME,,[define if the compiler recognizes typename])
+fi
+])
diff --git a/salome_adm/unix/config_files/check_Salome.m4 b/salome_adm/unix/config_files/check_Salome.m4
new file mode 100644
index 000000000..3db8d66d5
--- /dev/null
+++ b/salome_adm/unix/config_files/check_Salome.m4
@@ -0,0 +1,58 @@
+# Check availability of Salome binary distribution
+#
+# Author : Marc Tajchman (CEA, 2002)
+#
+
+AC_DEFUN([CHECK_SALOME],[
+
+AC_CHECKING(for Salome)
+
+Salome_ok=no
+
+AC_ARG_WITH(salome,
+ --with-salome=DIR root directory path of SALOME installation,
+ SALOME_DIR="$withval",SALOME_DIR="")
+
+if test "x$SALOME_DIR" == "x" ; then
+
+# no --with-salome-dir option used
+
+ if test "x$SALOME_ROOT_DIR" != "x" ; then
+
+ # SALOME_ROOT_DIR environment variable defined
+ SALOME_DIR=$SALOME_ROOT_DIR
+
+ else
+
+ # search Salome binaries in PATH variable
+ AC_PATH_PROG(TEMP, libMEDMEM_Swig.py)
+ if test "x$TEMP" != "x" ; then
+ SALOME_BIN_DIR=`dirname $TEMP`
+ SALOME_DIR=`dirname $SALOME_BIN_DIR`
+ fi
+
+ fi
+#
+fi
+
+if test -f ${SALOME_DIR}/bin/libMEDMEM_Swig.py ; then
+ Salome_ok=yes
+ AC_MSG_RESULT(Using Salome distribution in ${SALOME_DIR})
+
+ if test "x$SALOME_ROOT_DIR" == "x" ; then
+ SALOME_ROOT_DIR=${SALOME_DIR}
+ fi
+ if test "x$SALOME_SITE_DIR" == "x" ; then
+ SALOME_SITE_DIR=${SALOME_ROOT_DIR}
+ fi
+ AC_SUBST(SALOME_ROOT_DIR)
+ AC_SUBST(SALOME_SITE_DIR)
+
+else
+ AC_MSG_WARN("Cannot find compiled Salome distribution")
+fi
+
+AC_MSG_RESULT(for Salome: $Salome_ok)
+
+])dnl
+
diff --git a/salome_adm/unix/config_files/check_cas.m4 b/salome_adm/unix/config_files/check_cas.m4
new file mode 100644
index 000000000..a1efcefc7
--- /dev/null
+++ b/salome_adm/unix/config_files/check_cas.m4
@@ -0,0 +1,107 @@
+AC_DEFUN([CHECK_CAS],[
+AC_REQUIRE([AC_PROG_CXX])dnl
+AC_REQUIRE([AC_PROG_CXXCPP])dnl
+
+AC_CHECKING(for OpenCascade)
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
+AC_SUBST(CAS_CPPFLAGS)
+AC_SUBST(CAS_CXXFLAGS)
+AC_SUBST(CAS_LDFLAGS)
+
+CAS_CPPFLAGS=""
+CAS_CXXFLAGS=""
+CAS_LDFLAGS=""
+
+occ_ok=no
+
+dnl libraries directory location
+case $host_os in
+ linux*)
+ casdir=Linux
+ ;;
+ freebsd*)
+ casdir=Linux
+ ;;
+ irix5.*)
+ casdir=Linux
+ ;;
+ irix6.*)
+ casdir=Linux
+ ;;
+ osf4.*)
+ casdir=Linux
+ ;;
+ solaris2.*)
+ casdir=Linux
+ ;;
+ *)
+ casdir=Linux
+ ;;
+esac
+
+dnl were is OCC ?
+if test -z $CASROOT; then
+ AC_MSG_WARN(You must provide CASROOT variable : see OCC installation manual)
+else
+ occ_ok=yes
+fi
+
+if test "x$occ_ok" = "xyes"; then
+
+dnl cascade headers
+
+ CPPFLAGS_old="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -DLIN -DLINTEL -DCSFDB -DNO_CXX_EXCEPTION -DNo_exception -I$CASROOT/inc"
+ CXXFLAGS_old="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS -funsigned-char"
+
+ AC_CHECK_HEADER(Standard_Type.hxx,occ_ok=yes ,occ_ok=no)
+
+ CPPFLAGS="$CPPFLAGS_old"
+ CXXFLAGS="$CXXFLAGS_old"
+fi
+
+if test "x$occ_ok" = xyes ; then
+
+ CAS_CPPFLAGS="-DLIN -DLINTEL -DCSFDB -DNO_CXX_EXCEPTION -DNo_exception -I$CASROOT/inc"
+ CAS_CXXFLAGS="-funsigned-char"
+
+ AC_MSG_CHECKING(for OpenCascade libraries)
+
+ CPPFLAGS_old="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $CAS_CPPFLAGS"
+ CXXFLAGS_old="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS $CAS_CXXFLAGS"
+ LIBS_old="$LIBS"
+ LIBS="$LIBS -L$CASROOT/$casdir/lib -lTKernel"
+
+ AC_CACHE_VAL(salome_cv_lib_occ,[
+ AC_TRY_LINK(
+#include
+, size_t size;
+ const Standard_CString aName="toto";
+ Standard_Type myST(aName) ;
+ myST.Find(aName);,
+ eval "salome_cv_lib_occ=yes",eval "salome_cv_lib_occ=no")
+ ])
+ occ_ok="$salome_cv_lib_occ"
+
+ CPPFLAGS="$CPPFLAGS_old"
+ CXXFLAGS="$CXXFLAGS_old"
+ LIBS="$LIBS_old"
+fi
+
+if test "x$occ_ok" = xno ; then
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN(Opencascade libraries not found)
+else
+ AC_MSG_RESULT(yes)
+ CAS_LDFLAGS="-L$CASROOT/$casdir/lib -lTKPAppStd -lTKFillet -lTKService -lFWOSPlugin -lTKG2d -lTKShHealing -lTKShHealingStd -lTKOpenGl -lTKG3d -lTKTopAlgo -lTKGeomAlgo -lTKV2d -lPAppStdPlugin -lTKGeomBase -lTKV3d -lPTKernel -lTKHLR -lTKVRML -lTKShapeSchema -lTKIGES -lTKXSBase -lTKStdSchema -lTKMath -lTKBRep -lTKOffset -lTKernel -lTKBool -lTKPCAF -lTKCAF -lTKPShape -lTKCDF -lTKPrim -lTKSTEP -lTKFeat -lTKSTL"
+fi
+
+AC_LANG_RESTORE
+
+])dnl
diff --git a/salome_adm/unix/config_files/check_corba.m4 b/salome_adm/unix/config_files/check_corba.m4
new file mode 100644
index 000000000..38112ed31
--- /dev/null
+++ b/salome_adm/unix/config_files/check_corba.m4
@@ -0,0 +1,49 @@
+AC_DEFUN([CHECK_CORBA],[
+
+if test x"$DEFAULT_ORB" = x"omniORB"
+then
+
+ # Contient le nom de l'ORB
+ ORB=omniorb
+
+ AC_MSG_RESULT(default orb : omniORB)
+ IDL=$OMNIORB_IDL
+ AC_SUBST(IDL)
+
+ CORBA_ROOT=$OMNIORB_ROOT
+ CORBA_INCLUDES=$OMNIORB_INCLUDES
+ CORBA_CXXFLAGS=$OMNIORB_CXXFLAGS
+ CORBA_LIBS=$OMNIORB_LIBS
+ IDLCXXFLAGS=$OMNIORB_IDLCXXFLAGS
+ IDLPYFLAGS=$OMNIORB_IDLPYFLAGS
+
+ AC_SUBST(CORBA_ROOT)
+ AC_SUBST(CORBA_INCLUDES)
+ AC_SUBST(CORBA_CXXFLAGS)
+ AC_SUBST(CORBA_LIBS)
+ AC_SUBST(IDLCXXFLAGS)
+ AC_SUBST(IDLPYFLAGS)
+
+ IDL_CLN_H=$OMNIORB_IDL_CLN_H
+ IDL_CLN_CXX=$OMNIORB_IDL_CLN_CXX
+ IDL_CLN_OBJ=$OMNIORB_IDL_CLN_OBJ
+
+ AC_SUBST(IDL_CLN_H)
+ AC_SUBST(IDL_CLN_CXX)
+ AC_SUBST(IDL_CLN_OBJ)
+
+ IDL_SRV_H=$OMNIORB_IDL_SRV_H
+ IDL_SRV_CXX=$OMNIORB_IDL_SRV_CXX
+ IDL_SRV_OBJ=$OMNIORB_IDL_SRV_OBJ
+
+ AC_SUBST(IDL_SRV_H)
+ AC_SUBST(IDL_SRV_CXX)
+ AC_SUBST(IDL_SRV_OBJ)
+
+else
+ AC_MSG_RESULT($DEFAULT_ORB unknown orb)
+
+fi
+
+])dnl
+dnl
diff --git a/salome_adm/unix/config_files/check_f77.m4 b/salome_adm/unix/config_files/check_f77.m4
new file mode 100644
index 000000000..0509aa40a
--- /dev/null
+++ b/salome_adm/unix/config_files/check_f77.m4
@@ -0,0 +1,8 @@
+AC_DEFUN([CHECK_F77],[
+
+AC_PROG_F77
+
+AC_F77_LIBRARY_LDFLAGS
+AC_F77_WRAPPERS
+
+])dnl
diff --git a/salome_adm/unix/config_files/check_hdf5.m4 b/salome_adm/unix/config_files/check_hdf5.m4
new file mode 100644
index 000000000..2f2da10b5
--- /dev/null
+++ b/salome_adm/unix/config_files/check_hdf5.m4
@@ -0,0 +1,63 @@
+AC_DEFUN([CHECK_HDF5],[
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_CPP])dnl
+
+AC_CHECKING(for HDF5)
+
+AC_ARG_WITH(hdf5,
+ [ --with-hdf5=DIR root directory path to hdf5 installation ],
+ [HDF5HOME="$withval"
+ AC_MSG_RESULT("select $withval as path to hdf5")
+ ])
+
+AC_SUBST(HDF5_INCLUDES)
+AC_SUBST(HDF5_LIBS)
+AC_SUBST(HDF5_MT_LIBS)
+
+HDF5_INCLUDES=""
+HDF5_LIBS=""
+HDF5_MT_LIBS=""
+
+hdf5_ok=no
+
+LOCAL_INCLUDES=""
+LOCAL_LIBS=""
+
+if test -z $HDF5HOME
+then
+ AC_MSG_WARN(undefined HDF5HOME variable which specify hdf5 installation directory)
+else
+ LOCAL_INCLUDES="-I$HDF5HOME/include"
+ LOCAL_LIBS="-L$HDF5HOME/lib"
+fi
+
+dnl hdf5 headers
+
+CPPFLAGS_old="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $LOCAL_INCLUDES"
+AC_CHECK_HEADER(hdf5.h,hdf5_ok=yes ,hdf5_ok=no)
+CPPFLAGS="$CPPFLAGS_old"
+
+
+if test "x$hdf5_ok" = "xyes"
+then
+
+dnl hdf5 library
+
+ LIBS_old="$LIBS"
+ LIBS="$LIBS $LOCAL_LIBS"
+ AC_CHECK_LIB(hdf5,H5open,hdf5_ok=yes,hdf5_ok=no)
+ LIBS="$LIBS_old"
+
+fi
+
+if test "x$hdf5_ok" = "xyes"
+then
+ HDF5_INCLUDES="$LOCAL_INCLUDES"
+ HDF5_LIBS="$LOCAL_LIBS -lhdf5"
+ HDF5_MT_LIBS="$LOCAL_LIBS -lhdf5"
+fi
+
+AC_MSG_RESULT(for hdf5: $hdf5_ok)
+
+])dnl
diff --git a/salome_adm/unix/config_files/check_htmlgen.m4 b/salome_adm/unix/config_files/check_htmlgen.m4
new file mode 100644
index 000000000..6a3f49819
--- /dev/null
+++ b/salome_adm/unix/config_files/check_htmlgen.m4
@@ -0,0 +1,39 @@
+AC_DEFUN([CHECK_HTML_GENERATORS],[
+
+#AC_CHECKING(for html generators)
+AC_CHECKING(for doxygen)
+
+doxygen_ok=yes
+
+dnl were is doxygen ?
+
+AC_PATH_PROG(DOXYGEN,doxygen)
+
+if test "x$DOXYGEN" = "x"
+then
+ doxygen_ok=no
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN(doxygen not found)
+else
+ dnl AC_SUBST(DOXYGEN)
+ AC_MSG_RESULT(yes)
+fi
+
+AC_CHECKING(for graphviz)
+
+graphviz_ok=yes
+
+dnl were is graphviz ?
+
+AC_PATH_PROG(DOT,dot)
+
+if test "x$DOT" = "x" ; then
+ graphviz_ok=no
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN(graphviz not found)
+else
+ AC_MSG_RESULT(yes)
+fi
+
+])dnl
+dnl
diff --git a/salome_adm/unix/config_files/check_java.m4 b/salome_adm/unix/config_files/check_java.m4
new file mode 100644
index 000000000..e24f304fa
--- /dev/null
+++ b/salome_adm/unix/config_files/check_java.m4
@@ -0,0 +1,90 @@
+AC_DEFUN([CHECK_JAVA],[
+dnl AC_REQUIRE([AC_CANONICAL_SYSTEM])dnl
+dnl AC_REQUIRE([AC_PROG_CPP])dnl
+
+AC_CHECKING(for JAVA)
+
+JAVA_INCLUDES=""
+JAVA_LIBS=""
+JAVA_LDPATH=""
+
+java_ok=no
+
+if test -z $JAVAHOME
+then
+ AC_MSG_WARN(define JAVAHOME variable to use Java)
+else
+ java_ok=yes
+fi
+
+if test "x$java_ok" = "xyes"
+then
+ AC_EXEEXT
+ AC_CHECK_PROG(JAVA, java$EXEEXT,found)
+ if test "x$JAVA" = "x"
+ then
+ java_ok=no
+ fi
+
+ AC_CHECK_PROG(JAVAC, javac$EXEEXT,found)
+ if test "x$JAVAC" = "x"
+ then
+ java_ok=no
+ fi
+fi
+
+if test "x$java_ok" = "xyes"
+then
+ version=`$JAVA -version 2>&1 | grep "java version"`
+ case "$version" in
+ *1.1.*)
+ AC_MSG_RESULT(using jdk1.1 version - jdk1.4 required)
+ java_ok=no;;
+ *1.2*)
+ AC_MSG_RESULT(using jdk1.2 version - jdk1.4 required)
+ java_ok=no;;
+ *1.3*)
+ AC_MSG_RESULT(using jdk1.3 version - jdk1.4 required)
+ java_ok=no;;
+ *1.4*)
+ AC_MSG_RESULT(using jdk1.4 version) ;;
+ esac
+fi
+
+if test "x$java_ok" = "xyes"
+then
+dnl java headers
+ LOCAL_INCLUDES=" -I${JAVAHOME}/include -I${JAVAHOME}/include/linux"
+ CPPFLAGS_old="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $LOCAL_INCLUDES"
+ AC_CHECK_HEADER(jni.h,java_ok=yes ,java_ok=no)
+
+ CPPFLAGS="$CPPFLAGS_old"
+fi
+
+if test "x$java_ok" = "xyes"
+then
+dnl libjava library
+ LOCAL_LIBS="-L${JAVAHOME}/jre/lib/i386 -ljava -L${JAVAHOME}/jre/lib/i386/client -ljvm -lverify"
+ LIBS_old="$LIBS"
+ LIBS="$LIBS $LOCAL_LIBS"
+
+ AC_CHECK_LIB(jvm,JNI_CreateJavaVM,java_ok=yes,java_ok=no)
+
+ LIBS="$LIBS_old"
+fi
+
+if test "x$java_ok" = "xyes"
+then
+ JAVA_INCLUDES="$LOCAL_INCLUDES"
+ JAVA_LIBS="$LOCAL_LIBS"
+fi
+
+AC_SUBST(JAVA_INCLUDES)
+AC_SUBST(JAVA_LIBS)
+AC_SUBST(JAVA_LDPATH)
+
+AC_MSG_RESULT(for java: $java_ok)
+
+])dnl
+dnl
diff --git a/salome_adm/unix/config_files/check_med2.m4 b/salome_adm/unix/config_files/check_med2.m4
new file mode 100644
index 000000000..916906068
--- /dev/null
+++ b/salome_adm/unix/config_files/check_med2.m4
@@ -0,0 +1,64 @@
+AC_DEFUN([CHECK_MED2],[
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_CPP])dnl
+AC_REQUIRE([CHECK_HDF5])dnl
+
+AC_CHECKING(for MED2)
+
+AC_ARG_WITH(med2,
+ [ --with-med2=DIR root directory path to med2 installation ],
+ [MED2HOME="$withval"
+ AC_MSG_RESULT("select $withval as path to med2")
+ ])
+
+AC_SUBST(MED2_INCLUDES)
+AC_SUBST(MED2_LIBS)
+AC_SUBST(MED2_MT_LIBS)
+
+MED2_INCLUDES=""
+MED2_LIBS=""
+MED2_MT_LIBS=""
+
+med2_ok=no
+
+LOCAL_INCLUDES="$HDF5_INCLUDES"
+LOCAL_LIBS="-lmed $HDF5_LIBS"
+
+if test -z $MED2HOME
+then
+ AC_MSG_WARN(undefined MED2HOME variable which specify med2 installation directory)
+else
+ LOCAL_INCLUDES="$LOCAL_INCLUDES -I$MED2HOME/include"
+ LOCAL_LIBS="-L$MED2HOME/lib $LOCAL_LIBS"
+fi
+
+dnl check med2 header
+
+CPPFLAGS_old="$CPPFLAGS"
+dnl we must test system : linux = -DPCLINUX
+CPPFLAGS="$CPPFLAGS -DPCLINUX $LOCAL_INCLUDES"
+AC_CHECK_HEADER(med.h,med2_ok=yes ,med2_ok=no)
+CPPFLAGS="$CPPFLAGS_old"
+
+if test "x$med2_ok" = "xyes"
+then
+
+dnl check med2 library
+
+ LIBS_old="$LIBS"
+ LIBS="$LIBS $LOCAL_LIBS"
+ AC_CHECK_LIB(med,MEDouvrir,med2_ok=yes,med2_ok=no)
+ LIBS="$LIBS_old"
+
+fi
+
+if test "x$med2_ok" = "xyes"
+then
+ MED2_INCLUDES="-DPCLINUX $LOCAL_INCLUDES"
+ MED2_LIBS="$LOCAL_LIBS"
+ MED2_MT_LIBS="$LOCAL_LIBS"
+fi
+
+AC_MSG_RESULT(for med2: $med2_ok)
+
+])dnl
diff --git a/salome_adm/unix/config_files/check_mico.m4 b/salome_adm/unix/config_files/check_mico.m4
new file mode 100644
index 000000000..92bb8d2f0
--- /dev/null
+++ b/salome_adm/unix/config_files/check_mico.m4
@@ -0,0 +1,133 @@
+
+AC_DEFUN([CHECK_MICO],[
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_CXX])dnl
+AC_REQUIRE([AC_PROG_CPP])dnl
+AC_REQUIRE([AC_PROG_CXXCPP])dnl
+
+AC_CHECKING(for mico)
+mico_ok=yes
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
+AC_PATH_PROG(MICOD, micod)
+if test "x$MICOD" = "x"
+then
+ mico_ok=no
+ AC_MSG_RESULT(mico binaries not in PATH variable)
+else
+ mico_ok=yes
+fi
+
+if test "x$mico_ok" = "xyes"
+then
+ AC_SUBST(MICO_IDL)
+
+ MICO_BIN=`echo ${MICOD} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
+ MICO_LIB=`echo ${MICO_BIN} | sed -e "s,bin,lib,"`
+ MICO_ROOT=`echo ${MICO_BIN} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
+ AC_SUBST(MICO_ROOT)
+
+ MICO_IDL=${MICO_BIN}/idl
+ AC_SUBST(MICO_IDL)
+
+ MICO_INCLUDES="-I$MICO_ROOT/include"
+ AC_SUBST(MICO_INCLUDES)
+
+ MICO_VERSION=`sed -n -e 's/.define *MICO_VERSION *\"\([[^\"]]*\)\"/\1/p' $MICO_ROOT/include/mico/version.h`
+ AC_SUBST(MICO_VERSION)
+ AC_MSG_RESULT(using mico version $MICO_VERSION)
+
+ MICO_CXXFLAGS="-ftemplate-depth-42 -fpermissive"
+ AC_SUBST(MICO_CXXFLAGS)
+
+ CXXFLAGS_old=$CXXFLAGS
+ CXXFLAGS="$CXXFLAGS $MICO_CXXFLAGS $MICO_INCLUDES"
+
+ AC_MSG_CHECKING(include of CORBA.h)
+ AC_TRY_COMPILE(
+#include "CORBA.h"
+, ,mico_ok=yes ,mico_ok=no)
+
+ if test "x$mico_ok" = "xno"
+ then
+ AC_MSG_RESULT(CORBA.h not found in mico installation)
+ else
+ AC_MSG_RESULT(yes)
+ fi
+
+ CXXFLAGS=$CXXFLAGS_old
+
+fi
+
+if test "x$mico_ok" = "xyes"
+then
+ MICO_LDFLAGS="-L$MICO_LIB"
+
+ LIBS_old=$LIBS
+ MICO_LIBS="$MICO_LDFLAGS -lmico$MICO_VERSION -ldl"
+ AC_SUBST(MICO_LIBS)
+
+ LIBS="$MICO_LIBS $LIBS"
+ CXXFLAGS_old=$CXXFLAGS
+ CXXFLAGS="$CXXFLAGS $MICO_CXXFLAGS $MICO_INCLUDES"
+
+ AC_MSG_CHECKING(whether we can link with mico)
+ AC_TRY_LINK(
+#include "CORBA.h"
+,CORBA::ORB_var orb,
+ mico_ok=yes,mico_ok=no)
+
+ if test "x$mico_ok" = "xno"
+ then
+ AC_MSG_RESULT(mico library linking failed)
+ mico_ok=no
+ else
+ AC_MSG_RESULT(yes)
+ fi
+
+ CXXFLAGS=$CXXFLAGS_old
+ LIBS=$LIBS_old
+fi
+
+
+if test "x$mico_ok" = "xyes"
+then
+
+ MICO_IDLCXXFLAGS="-bcxx -I$MICO_ROOT/idl"
+ AC_SUBST(MICO_IDLCXXFLAGS)
+ AC_SUBST(MICO_IDLPYFLAGS)
+
+ MICO_IDL_CLN_H=.hh
+ MICO_IDL_CLN_CXX=SK.cc
+ MICO_IDL_CLN_OBJ=SK.o
+ AC_SUBST(MICO_IDL_CLN_H)
+ AC_SUBST(MICO_IDL_CLN_CXX)
+ AC_SUBST(MICO_IDL_CLN_OBJ)
+
+ MICO_IDL_SRV_H=.hh
+ MICO_IDL_SRV_CXX=SK.cc
+ MICO_IDL_SRV_OBJ=SK.o
+ AC_SUBST(MICO_IDL_SRV_H)
+ AC_SUBST(MICO_IDL_SRV_CXX)
+ AC_SUBST(MICO_IDL_SRV_OBJ)
+
+ MICO_IDL_TIE_H=
+ MICO_IDL_TIE_CXX=
+ AC_SUBST(MICO_IDL_TIE_H)
+ AC_SUBST(MICO_IDL_TIE_CXX)
+
+ AC_DEFINE(MICO)
+
+ CORBA_HAVE_POA=1
+ AC_DEFINE(CORBA_HAVE_POA)
+
+fi
+
+AC_LANG_RESTORE
+
+AC_MSG_RESULT(for mico: $mico_ok)
+
+])dnl
+dnl
diff --git a/salome_adm/unix/config_files/check_mpich.m4 b/salome_adm/unix/config_files/check_mpich.m4
new file mode 100644
index 000000000..be85c485a
--- /dev/null
+++ b/salome_adm/unix/config_files/check_mpich.m4
@@ -0,0 +1,46 @@
+AC_DEFUN([CHECK_MPICH],[
+
+AC_REQUIRE([AC_PROG_CC])dnl
+
+AC_ARG_WITH(mpich,
+ --with-mpich=DIR root directory path of MPICH installation,
+ WITHMPICH="yes",WITHMPICH="no")
+
+MPICH_INCLUDES=""
+MPICH_LIBS=""
+if test "$WITHMPICH" = yes; then
+
+ echo
+ echo ---------------------------------------------
+ echo testing mpich
+ echo ---------------------------------------------
+ echo
+ MPICH_HOME=$withval
+
+ if test "$MPICH_HOME"; then
+ MPICH_INCLUDES="-I$MPICH_HOME/include"
+ MPICH_LIBS="-L$MPICH_HOME/lib"
+ fi
+
+ CPPFLAGS_old="$CPPFLAGS"
+ CPPFLAGS="$MPICH_INCLUDES $CPPFLAGS"
+ AC_CHECK_HEADER(mpi.h,WITHMPICH="yes",WITHMPICH="no")
+ CPPFLAGS="$CPPFLAGS_old"
+
+ if test "$WITHMPICH" = "yes";then
+ LDFLAGS_old="$LDFLAGS"
+ LDFLAGS="$MPICH_LIBS $LDFLAGS"
+ AC_CHECK_LIB(mpich,MPI_Init,
+ AC_CHECK_LIB(pmpich, PMPI_Init,WITHMPICH="yes",WITHMPICH="no"),
+ WITHMPICH="no")
+ LDFLAGS="$LDFLAGS_old"
+ fi
+
+ MPICH_LIBS="$MPICH_LIBS -lpmpich -lmpich"
+
+fi
+AC_SUBST(MPICH_INCLUDES)
+AC_SUBST(MPICH_LIBS)
+AC_SUBST(WITHMPICH)
+
+])dnl
diff --git a/salome_adm/unix/config_files/check_omniorb.m4 b/salome_adm/unix/config_files/check_omniorb.m4
new file mode 100644
index 000000000..1763d719d
--- /dev/null
+++ b/salome_adm/unix/config_files/check_omniorb.m4
@@ -0,0 +1,207 @@
+
+AC_DEFUN([CHECK_OMNIORB],[
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_CXX])dnl
+AC_REQUIRE([AC_PROG_CPP])dnl
+AC_REQUIRE([AC_PROG_CXXCPP])dnl
+
+AC_CHECKING(for omniORB)
+omniORB_ok=yes
+
+if test "x$PYTHON" = "x"
+then
+ CHECK_PYTHON
+fi
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
+AC_PATH_PROG(OMNIORB_IDL, omniidl)
+if test "xOMNIORB_IDL" = "x"
+then
+ omniORB_ok=no
+ AC_MSG_RESULT(omniORB binaries not in PATH variable)
+else
+ omniORB_ok=yes
+fi
+
+if test "x$omniORB_ok" = "xyes"
+then
+ AC_SUBST(OMNIORB_IDL)
+
+ OMNIORB_BIN=`echo ${OMNIORB_IDL} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
+ OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin,lib,"`
+
+ OMNIORB_ROOT=`echo ${OMNIORB_BIN} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
+ OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
+ AC_SUBST(OMNIORB_ROOT)
+
+ OMNIORB_INCLUDES="-I$OMNIORB_ROOT/include -I$OMNIORB_ROOT/include/omniORB3 -I$OMNIORB_ROOT/include/COS"
+ AC_SUBST(OMNIORB_INCLUDES)
+
+ ENABLE_PTHREADS
+
+ OMNIORB_CXXFLAGS=
+ case $build_cpu in
+ sparc*)
+ AC_DEFINE(__sparc__)
+ OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__sparc__"
+ ;;
+ *86*)
+ AC_DEFINE(__x86__)
+ OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__x86__"
+ ;;
+ esac
+ case $build_os in
+ solaris*)
+ AC_DEFINE(__sunos__)
+ __OSVERSION__=5
+ AC_DEFINE(__OSVERSION__)
+ OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__sunos__"
+ ;;
+ linux*)
+ AC_DEFINE(__linux__)
+ __OSVERSION__=2
+ AC_DEFINE(__OSVERSION__)
+ OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__linux__"
+ ;;
+ esac
+ AC_SUBST(OMNIORB_CXXFLAGS)
+
+ CPPFLAGS_old=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES"
+
+ AC_LANG_CPLUSPLUS
+ AC_CHECK_HEADER(CORBA.h,omniORB_ok="yes",omniORB_ok="no")
+
+ CPPFLAGS=$CPPFLAGS_old
+
+fi
+
+if test "x$omniORB_ok" = "xyes"
+then
+ OMNIORB_LDFLAGS="-L$OMNIORB_LIB"
+
+ LIBS_old=$LIBS
+ LIBS="$LIBS $OMNIORB_LDFLAGS -lomnithread"
+
+ CXXFLAGS_old=$CXXFLAGS
+ CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES"
+
+ AC_MSG_CHECKING(whether we can link with omnithreads)
+ AC_CACHE_VAL(salome_cv_lib_omnithreads,[
+ AC_TRY_LINK(
+#include
+, omni_mutex my_mutex,
+ eval "salome_cv_lib_omnithreads=yes",eval "salome_cv_lib_omnithreads=no")
+ ])
+
+ omniORB_ok="$salome_cv_lib_omnithreads"
+ if test "x$omniORB_ok" = "xno"
+ then
+ AC_MSG_RESULT(omnithreads not found)
+ else
+ AC_MSG_RESULT(yes)
+ fi
+
+ LIBS=$LIBS_old
+ CXXFLAGS=$CXXFLAGS_old
+fi
+
+if test "x$omniORB_ok" = "xyes"
+then
+
+ AC_CHECK_LIB(socket,socket, LIBS="-lsocket $LIBS",,)
+ AC_CHECK_LIB(nsl,gethostbyname, LIBS="-lnsl $LIBS",,)
+
+ LIBS_old=$LIBS
+ OMNIORB_LIBS="$OMNIORB_LDFLAGS -lomniORB3 -ltcpwrapGK -lomniDynamic3 -lomnithread -lCOS3 -lCOSDynamic3"
+ AC_SUBST(OMNIORB_LIBS)
+
+ LIBS="$OMNIORB_LIBS $LIBS"
+ CXXFLAGS_old=$CXXFLAGS
+ CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES"
+
+ AC_MSG_CHECKING(whether we can link with omniORB3)
+ AC_CACHE_VAL(salome_cv_lib_omniorb3,[
+ AC_TRY_LINK(
+#include
+, CORBA::ORB_var orb,
+ eval "salome_cv_lib_omniorb3=yes",eval "salome_cv_lib_omniorb3=no")
+ ])
+ omniORB_ok="$salome_cv_lib_omniorb3"
+
+ if test "x$omniORB_ok" = "xno"
+ then
+ AC_MSG_RESULT(omniORB library linking failed)
+ omniORB_ok=no
+ else
+ AC_MSG_RESULT(yes)
+ fi
+ LIBS="$LIBS_old"
+ CXXFLAGS=$CXXFLAGS_old
+fi
+
+
+if test "x$omniORB_ok" = "xyes"
+then
+
+ OMNIORB_IDLCXXFLAGS="-bcxx -I$OMNIORB_ROOT/idl"
+ OMNIORB_IDLPYFLAGS="-bpython -I$OMNIORB_ROOT/idl"
+ AC_SUBST(OMNIORB_IDLCXXFLAGS)
+ AC_SUBST(OMNIORB_IDLPYFLAGS)
+
+ OMNIORB_IDL_CLN_H=.hh
+ OMNIORB_IDL_CLN_CXX=SK.cc
+ OMNIORB_IDL_CLN_OBJ=SK.o
+ AC_SUBST(OMNIORB_IDL_CLN_H)
+ AC_SUBST(OMNIORB_IDL_CLN_CXX)
+ AC_SUBST(OMNIORB_IDL_CLN_OBJ)
+
+ OMNIORB_IDL_SRV_H=.hh
+ OMNIORB_IDL_SRV_CXX=SK.cc
+ OMNIORB_IDL_SRV_OBJ=SK.o
+ AC_SUBST(OMNIORB_IDL_SRV_H)
+ AC_SUBST(OMNIORB_IDL_SRV_CXX)
+ AC_SUBST(OMNIORB_IDL_SRV_OBJ)
+
+ OMNIORB_IDL_TIE_H=
+ OMNIORB_IDL_TIE_CXX=
+ AC_SUBST(OMNIORB_IDL_TIE_H)
+ AC_SUBST(OMNIORB_IDL_TIE_CXX)
+
+ AC_DEFINE(OMNIORB)
+
+ CORBA_HAVE_POA=1
+ AC_DEFINE(CORBA_HAVE_POA)
+
+ CORBA_ORB_INIT_HAVE_3_ARGS=1
+ AC_DEFINE(CORBA_ORB_INIT_HAVE_3_ARGS)
+ CORBA_ORB_INIT_THIRD_ARG='"omniORB3"'
+ AC_DEFINE(CORBA_ORB_INIT_THIRD_ARG, "omniORB3")
+
+fi
+
+omniORBpy_ok=no
+if test "x$omniORB_ok" = "xyes"
+then
+ AC_MSG_CHECKING(omniORBpy (CORBA.py file available))
+ if test -f ${OMNIORB_ROOT}/lib/python/CORBA.py
+ then
+ omniORBpy_ok=yes
+ PYTHONPATH=${OMNIORB_ROOT}/lib/python:${OMNIORB_LIB}:${PYTHON_PREFIX}/lib/python${PYTHON_VERSION}:${PYTHONPATH}
+ AC_SUBST(PYTHONPATH)
+ AC_MSG_RESULT(yes)
+ fi
+fi
+
+AC_LANG_RESTORE
+
+AC_MSG_RESULT(for omniORBpy: $omniORBpy_ok)
+AC_MSG_RESULT(for omniORB: $omniORB_ok)
+
+# Save cache
+AC_CACHE_SAVE
+
+])dnl
+dnl
diff --git a/salome_adm/unix/config_files/check_opengl.m4 b/salome_adm/unix/config_files/check_opengl.m4
new file mode 100644
index 000000000..4311d12e3
--- /dev/null
+++ b/salome_adm/unix/config_files/check_opengl.m4
@@ -0,0 +1,107 @@
+AC_DEFUN([CHECK_OPENGL],[
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_CPP])dnl
+AC_ARG_WITH(opengl,
+ [ --with-opengl=DIR root directory path of OpenGL installation ],
+ [
+ opengl_dir="$withval"
+ local_opengl=yes
+ ], [
+ dirs="/usr/lib /usr/local/lib /opt/graphics/OpenGL/lib /usr/openwin/lib /usr/X11R6/lib"
+ ])dnl
+
+AC_CHECKING(for OpenGL)
+
+AC_SUBST(OGL_INCLUDES)
+AC_SUBST(OGL_LIBS)
+
+OGL_INCLUDES=""
+OGL_LIBS=""
+
+OpenGL_ok=no
+
+dnl openGL headers
+
+# by default
+
+if test "x$local_opengl" = "xyes" ; then
+ if test -f "${opengl_dir}/include/GL/gl.h" ; then
+ OpenGL_ok=yes
+ OGL_INCLUDES="-I${opengl_dir}/include"
+ OGL_LIBS="-L${opengl_dir}/lib"
+ AC_MSG_RESULT(select OpenGL distribution in ${opengl_dir})
+ else
+ AC_MSG_RESULT(no gl.h header file in ${opengl_dir}/include/GL)
+ fi
+fi
+
+if test "x$OpenGL_ok" = "xno"
+then
+ AC_CHECK_HEADERS(GL/gl.h, [OpenGL_ok=yes])
+fi
+
+if test "x$OpenGL_ok" = "xno"
+then
+# under SunOS ?
+ AC_CHECK_HEADERS(/usr/openwin/share/include/GL/glxmd.h,
+ [OpenGL_ok=yes]
+ OGL_INCLUDES="-I/usr/openwin/share/include/")
+fi
+
+if test "x$OpenGL_ok" = "xno"
+then
+# under IRIX ?
+ AC_CHECK_HEADERS(/opt/graphics/OpenGL/include/GL/glxmd.h,
+ [OpenGL_ok=yes]
+ OGL_INCLUDES="-I/opt/graphics/OpenGL/include")
+fi
+if test "x$OpenGL_ok" = "xno"
+then
+# some linux OpenGL servers hide the includes in /usr/X11R6/include/GL
+ AC_CHECK_HEADERS(/usr/X11R6/include/GL/gl.h,
+ [OpenGL_ok=yes]
+ OGL_INCLUDES="-I/usr/X11R6/include")
+fi
+
+if test "x$OpenGL_ok" = "xyes"
+then
+ AC_CHECKING(for OpenGL library)
+ OpenGL_ok=no
+ for i in $dirs; do
+ if test -r "$i/libGL.so"; then
+dnl AC_MSG_RESULT(in $i)
+ OGL_LIBS="-L$i"
+ break
+ fi
+# under IRIX ?
+ if test -r "$i/libGL.sl"; then
+dnl AC_MSG_RESULT(in $i)
+ OGL_LIBS="-L$i"
+ break
+ fi
+ done
+ LDFLAGS_old="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $OGL_LIBS"
+ AC_CHECK_LIB(GL,glBegin,OpenGL_ok=yes,OpenGL_ok=no)
+ LDFLAGS="$LDFLAGS_old"
+fi
+
+if test "x$OpenGL_ok" = "xyes" ; then
+ OGL_LIBS="$OGL_LIBS -lGL"
+fi
+
+
+OpenGLU_ok=no
+LDFLAGS_old="$LDFLAGS"
+LDFLAGS="$LDFLAGS $OGL_LIBS"
+AC_CHECK_LIB(GLU,gluBeginSurface,OpenGLU_ok=yes,OpenGLU_ok=no)
+LDFLAGS="$LDFLAGS_old"
+
+if test "x$OpenGLU_ok" = "xyes" ; then
+ OGL_LIBS="$OGL_LIBS -lGLU"
+fi
+
+# Save cache
+AC_CACHE_SAVE
+
+])dnl
diff --git a/salome_adm/unix/config_files/check_pthreads.m4 b/salome_adm/unix/config_files/check_pthreads.m4
new file mode 100644
index 000000000..4e9b131b5
--- /dev/null
+++ b/salome_adm/unix/config_files/check_pthreads.m4
@@ -0,0 +1,30 @@
+#@synonpsis CHECK_PTHREADS
+dnl check for pthreads system interfaces.
+dnl set CFLAGS_PTHREADS, CXXFLAGS_PTHREADS and LIBS_PTHREADS to
+dnl flags to compiler flags for multithread program compilation (if exists),
+dnl and library, if one required.
+dnl
+dnl@author (C) Ruslan Shevchenko , 1998
+dnl@id $Id$
+dnl ----------------------------------------------------------------
+dnl CHECK_PTHREADS
+AC_DEFUN(CHECK_PTHREADS,[
+AC_REQUIRE([AC_CANONICAL_SYSTEM])dnl
+AC_CHECK_HEADER(pthread.h,AC_DEFINE(HAVE_PTHREAD_H))
+AC_CHECK_LIB(posix4,nanosleep, LIBS_PTHREADS="-lposix4",LIBS_PTHREADS="")
+AC_CHECK_LIB(pthread,pthread_mutex_lock,
+ LIBS_PTHREADS="-lpthread $LIBS_PTHREADS")
+AC_MSG_CHECKING([parameters for using pthreads])
+case $build_os in
+ freebsd*)
+ CFLAGS_PTHREADS="-pthread"
+ CXXFLAGS_PTHREADS="-pthread"
+ ;;
+ *)
+ ;;
+esac
+AC_MSG_RESULT(["flags: $CFLAGS_PTHREADS\;libs: $LIBS_PTHREADS"])
+threads_ok=yes
+])dnl
+dnl
+dnl
diff --git a/salome_adm/unix/config_files/check_pyqt.m4 b/salome_adm/unix/config_files/check_pyqt.m4
new file mode 100644
index 000000000..ec915a4ad
--- /dev/null
+++ b/salome_adm/unix/config_files/check_pyqt.m4
@@ -0,0 +1,71 @@
+
+AC_DEFUN([CHECK_PYQT],[
+AC_REQUIRE([CHECK_PYTHON])dnl
+
+AC_CHECKING(for pyqt)
+
+pyqt_ok=no
+
+dnl were is pyqt ?
+
+if test -z $PYQTDIR; then
+ AC_MSG_WARN(You must provide PYQTDIR variable)
+else
+ pyqt_ok=yes
+fi
+
+if test "x$pyqt_ok" = xno -o ! -d "$PYQTDIR" -o ! -d "$PYQTDIR"/sip ; then
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN(pyqt not found)
+else
+ AC_CHECK_FILES("$PYQTDIR"/qt.py "$PYQTDIR"/libqtcmodule.so,pyqt_ok=yes,pyqt_ok=no)
+ if test "x$pyqt_ok" = xno ; then
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN(pyqt not found)
+ else
+ PYQT_ROOT=$PYQTDIR
+ PYQT_INCLUDES="-I$PYQTDIR/sip"
+ PYQT_LIBS="-L$PYQTDIR -lqtcmodule"
+
+ AC_SUBST(PYQT_ROOT)
+ AC_SUBST(PYQT_INCLUDES)
+ AC_SUBST(PYQT_LIBS)
+
+ AC_MSG_RESULT(yes)
+ fi
+fi
+
+AC_ARG_WITH(pyuic,
+ [ --with-pyuic=EXEC pyuic executable ],
+ [PYUIC="$withval"
+ AC_MSG_RESULT("select $withval as pyqt executable")
+ ], [
+ AC_PATH_PROG(PYUIC, pyuic)
+ ])
+
+if test "x$PYUIC" = "x"
+then
+ pyqt_ok=no
+ AC_MSG_RESULT(pyuic not in PATH variable)
+else
+ if test -z $PYQT_SIPS; then
+ AC_MSG_WARN(You must provide PYQT_SIPS variable)
+ pyqt_ok=no
+ else
+ PYQT_SIPS=${PYQT_SIPS}
+ fi
+ PYQT_LIBS="-L${PYTHON_PREFIX}/lib/python${PYTHON_VERSION}/site-packages ${PYQT_LIBS}"
+fi
+
+AC_SUBST(PYUIC)
+AC_SUBST(PYQT_SIPS)
+AC_SUBST(PYQT_LIBS)
+
+
+
+AC_MSG_RESULT(for pyqt: $pyqt_ok)
+
+])dnl
+dnl
+
+
diff --git a/salome_adm/unix/config_files/check_qt.m4 b/salome_adm/unix/config_files/check_qt.m4
new file mode 100644
index 000000000..36d0636cf
--- /dev/null
+++ b/salome_adm/unix/config_files/check_qt.m4
@@ -0,0 +1,134 @@
+
+AC_DEFUN([CHECK_QT],[
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_CXX])dnl
+AC_REQUIRE([AC_PROG_CPP])dnl
+AC_REQUIRE([AC_PROG_CXXCPP])dnl
+AC_REQUIRE([CHECK_OPENGL])dnl
+
+AC_CHECKING(for QT)
+qt_ok=yes
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
+if test "x$QTDIR" = "x"
+then
+ AC_MSG_RESULT(please define QTDIR variable)
+ qt_ok=no
+fi
+
+if test "x$qt_ok" = "xyes"
+then
+ if test -f ${QTDIR}/bin/moc
+ then
+ MOC=${QTDIR}/bin/moc
+ else
+ AC_PATH_PROG(MOC, moc)
+ fi
+ if test "x$MOC" = "x"
+ then
+ qt_ok=no
+ AC_MSG_RESULT(moc qt-compiler not in PATH variable)
+ else
+ qt_ok=yes
+ AC_MSG_RESULT(moc found)
+ fi
+fi
+
+if test "x$qt_ok" = "xyes"
+then
+ if test -f ${QTDIR}/bin/uic
+ then
+ UIC=${QTDIR}/bin/uic
+ else
+ AC_PATH_PROG(UIC, uic)
+ fi
+ if test "x$UIC" = "x"
+ then
+ qt_ok=no
+ AC_MSG_RESULT(uic qt-interface compiler not in PATH variable)
+ else
+ qt_ok=yes
+ AC_MSG_RESULT(uic found)
+ fi
+fi
+
+AC_SUBST(QTDIR)
+QT_ROOT=$QTDIR
+
+if test "x$qt_ok" = "xyes"
+then
+ AC_MSG_CHECKING(include of qt headers)
+
+ CPPFLAGS_old=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I$QTDIR/include"
+
+ AC_LANG_CPLUSPLUS
+ AC_CHECK_HEADER(qaction.h,qt_ok=yes ,qt_ok=no)
+
+ CPPFLAGS=$CPPFLAGS_old
+
+ if test "x$qt_ok" = "xno"
+ then
+ AC_MSG_RESULT(qt headers not found, or too old qt version, in $QTDIR/include)
+ AC_MSG_RESULT(QTDIR environment variable may be wrong)
+ else
+ AC_MSG_RESULT(yes)
+ QT_INCLUDES="-I${QT_ROOT}/include -DQT_THREAD_SUPPORT"
+ QT_MT_INCLUDES="-I${QT_ROOT}/include -DQT_THREAD_SUPPORT"
+ fi
+fi
+
+if test "x$qt_ok" = "xyes"
+then
+ AC_MSG_CHECKING(linking qt library)
+ LIBS_old=$LIBS
+ LIBS="$LIBS -L$QTDIR/lib -lqt-mt $OGL_LIBS"
+
+ CXXFLAGS_old=$CXXFLAGS
+ CXXFLAGS="$CXXFLAGS -I$QTDIR/include"
+
+ AC_CACHE_VAL(salome_cv_lib_qt,[
+ AC_TRY_LINK(
+#include
+, int n;
+ char **s;
+ QApplication a(n, s);
+ a.exec();,
+ eval "salome_cv_lib_qt=yes",eval "salome_cv_lib_qt=no")
+ ])
+ qt_ok="$salome_cv_lib_qt"
+
+ if test "x$qt_ok" = "xno"
+ then
+ AC_MSG_RESULT(unable to link with qt library)
+ AC_MSG_RESULT(QTDIR environment variable may be wrong)
+ else
+ AC_MSG_RESULT(yes)
+ QT_LIBS="-L$QTDIR/lib -lqt-mt"
+ QT_MT_LIBS="-L$QTDIR/lib -lqt-mt"
+ fi
+
+ LIBS=$LIBS_old
+ CXXFLAGS=$CXXFLAGS_old
+
+fi
+
+AC_SUBST(MOC)
+AC_SUBST(UIC)
+
+AC_SUBST(QT_ROOT)
+AC_SUBST(QT_INCLUDES)
+AC_SUBST(QT_LIBS)
+AC_SUBST(QT_MT_LIBS)
+
+AC_LANG_RESTORE
+
+AC_MSG_RESULT(for qt: $qt_ok)
+
+# Save cache
+AC_CACHE_SAVE
+
+])dnl
+dnl
diff --git a/salome_adm/unix/config_files/check_qwt.m4 b/salome_adm/unix/config_files/check_qwt.m4
new file mode 100644
index 000000000..54336cb6b
--- /dev/null
+++ b/salome_adm/unix/config_files/check_qwt.m4
@@ -0,0 +1,86 @@
+AC_DEFUN([CHECK_QWT],[
+AC_REQUIRE([CHECK_QT])dnl
+
+AC_CHECKING(for qwt)
+
+qwt_ok=no
+
+dnl were is qwt ?
+if test -z $QWTHOME; then
+ AC_MSG_WARN(You must provide QWTHOME variable)
+else
+ qwt_ok=yes
+fi
+
+if test "x$qwt_ok" = xno -o ! -d "$QWTHOME" ; then
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN(qwt not found)
+else
+
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ CPPFLAGS_old=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I$QWTHOME/include"
+ CPPFLAGS="$CPPFLAGS -I$QTDIR/include"
+
+ AC_CHECK_HEADER(qwt.h,qwt_ok=yes,qwt_ok=no)
+
+ CPPFLAGS=$CPPFLAGS_old
+
+ if test "x$qwt_ok" = xno ; then
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN(qwt not found)
+ else
+ qwt_ok=yes
+ fi
+
+if test "x$qwt_ok" = "xyes"
+then
+ AC_MSG_CHECKING(linking qwt library)
+ LIBS_old=$LIBS
+ LIBS="$LIBS -L$QTDIR/lib -lqt-mt -L$QWTHOME/lib -lqwt"
+
+ CXXFLAGS_old=$CXXFLAGS
+ CXXFLAGS="$CXXFLAGS -I$QTDIR/include -I$QWTHOME/include"
+
+ AC_CACHE_VAL(salome_cv_lib_qwt,[
+ AC_TRY_LINK(
+#include
+#include
+, int n;
+ char **s;
+ QApplication a(n, s);
+ QwtPlot* p;
+ a.setMainWidget(p);
+ a.exec();,
+ eval "salome_cv_lib_qwt=yes",eval "salome_cv_lib_qwt=no")
+ ])
+ qwt_ok="$salome_cv_lib_qwt"
+
+ if test "x$qwt_ok" = "xno"
+ then
+ AC_MSG_RESULT(unable to link with qwt library)
+ AC_MSG_RESULT(QWTHOME environment variable may be wrong)
+ else
+ QWT_INCLUDES="-I$QWTHOME/include"
+ QWT_LIBS="-L$QWTHOME/lib -lqwt"
+
+ AC_SUBST(QWT_INCLUDES)
+ AC_SUBST(QWT_LIBS)
+
+ AC_MSG_RESULT(yes)
+ fi
+
+ LIBS=$LIBS_old
+ CXXFLAGS=$CXXFLAGS_old
+
+fi
+
+
+ AC_LANG_RESTORE
+
+fi
+
+
+])dnl
+dnl
diff --git a/salome_adm/unix/config_files/check_sip.m4 b/salome_adm/unix/config_files/check_sip.m4
new file mode 100644
index 000000000..7808c3e67
--- /dev/null
+++ b/salome_adm/unix/config_files/check_sip.m4
@@ -0,0 +1,32 @@
+
+AC_DEFUN([CHECK_SIP],[
+AC_REQUIRE([CHECK_PYTHON])dnl
+
+sip_ok=yes
+
+AC_ARG_WITH(sip,
+ [ --with-sip=EXEC sip executable ],
+ [SIP="$withval"
+ AC_MSG_RESULT("select $withval as sip executable")
+ ], [
+ AC_PATH_PROG(SIP, sip)
+ ])
+
+if test "x$SIP" = "x"
+then
+ sip_ok=no
+ AC_MSG_RESULT(sip not in PATH variable)
+else
+ SIP_ROOT="$SIPDIR"
+ SIP_INCLUDES="${PYTHON_INCLUDES} -I${SIPDIR}"
+ SIP_LIBS="-L${PYTHON_PREFIX}/lib/python${PYTHON_VERSION}/site-packages -L${SIPDIR} -lsip"
+fi
+
+AC_SUBST(SIP)
+AC_SUBST(SIP_INCLUDES)
+AC_SUBST(SIP_LIBS)
+
+AC_MSG_RESULT(for sip: $sip_ok)
+
+])dnl
+dnl
diff --git a/salome_adm/unix/config_files/check_swig.m4 b/salome_adm/unix/config_files/check_swig.m4
new file mode 100644
index 000000000..9a127cbf9
--- /dev/null
+++ b/salome_adm/unix/config_files/check_swig.m4
@@ -0,0 +1,45 @@
+
+AC_DEFUN([CHECK_SWIG],[
+AC_REQUIRE([CHECK_PYTHON])dnl
+
+swig_ok=yes
+
+AC_ARG_WITH(swig,
+ [ --with-swig=EXEC swig executable ],
+ [SWIG="$withval"
+ AC_MSG_RESULT("select $withval as swig executable")
+ ], [
+ AC_PATH_PROG(SWIG, swig)
+ ])
+
+if test "x$SWIG" = "x"
+then
+ swig_ok=no
+ AC_MSG_RESULT(swig not in PATH variable)
+fi
+
+if test "x$swig_ok" = "xyes"
+then
+ AC_MSG_CHECKING(python wrapper generation with swig)
+ cat > conftest.h << EOF
+int f(double);
+EOF
+
+ $SWIG -module conftest -python conftest.h >/dev/null 2>&1
+ if test -f conftest_wrap.c
+ then
+ SWIG_FLAGS="-c++ -python -shadow"
+ else
+ swig_ok=no
+ fi
+ rm -f conftest*
+ AC_MSG_RESULT($swig_ok)
+fi
+
+AC_SUBST(SWIG_FLAGS)
+AC_SUBST(SWIG)
+
+AC_MSG_RESULT(for swig: $swig_ok)
+
+])dnl
+dnl
diff --git a/salome_adm/unix/config_files/check_vtk.m4 b/salome_adm/unix/config_files/check_vtk.m4
new file mode 100644
index 000000000..c66d795f8
--- /dev/null
+++ b/salome_adm/unix/config_files/check_vtk.m4
@@ -0,0 +1,96 @@
+AC_DEFUN([CHECK_VTK],[
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_CXX])dnl
+AC_REQUIRE([AC_PROG_CPP])dnl
+AC_REQUIRE([AC_PROG_CXXCPP])dnl
+
+AC_CHECKING(for VTK)
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
+AC_SUBST(VTK_INCLUDES)
+AC_SUBST(VTK_LIBS)
+AC_SUBST(VTKPY_MODULES)
+
+VTK_INCLUDES=""
+VTK_LIBS=""
+VTKPY_MODULES=""
+
+vtk_ok=no
+
+AC_PATH_X
+
+if test "x$OpenGL_ok" != "xyes"
+then
+ AC_MSG_WARN(vtk needs OpenGL correct configuration, check configure output)
+fi
+
+
+LOCAL_INCLUDES="$OGL_INCLUDES"
+LOCAL_LIBS="-lVTKCommon -lVTKGraphics -lVTKImaging -lVTKContrib $OGL_LIBS -L$x_libraries -lX11 -lXt"
+TRY_LINK_LIBS="-lVTKCommon $OGL_LIBS -L$x_libraries -lX11 -lXt"
+
+if test -z $VTKHOME
+then
+ AC_MSG_WARN(undefined VTKHOME variable which specify where vtk was compiled)
+else
+ LOCAL_INCLUDES="-I$VTKHOME/common -I$VTKHOME/imaging -I$VTKHOME/graphics -I$VTKHOME/contrib $LOCAL_INCLUDES"
+ LOCAL_LIBS="-L$VTKHOME/lib -L$VTKHOME/common -L$VTKHOME/graphics -L$VTKHOME/imaging -L$VTKHOME/contrib $LOCAL_LIBS"
+ TRY_LINK_LIBS="-L$VTKHOME/lib -L$VTKHOME/common $TRY_LINK_LIBS"
+fi
+
+dnl vtk headers
+CPPFLAGS_old="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $LOCAL_INCLUDES"
+
+AC_CHECK_HEADER(vtk.h,vtk_ok="yes",vtk_ok="no")
+
+CPPFLAGS="$CPPFLAGS_old"
+
+if test "x$vtk_ok" = "xyes"
+then
+ VTK_INCLUDES="$LOCAL_INCLUDES"
+
+dnl vtk libraries
+
+ AC_MSG_CHECKING(linking VTK library)
+
+ LIBS_old="$LIBS"
+# LIBS="$LIBS $TRY_LINK_LIBS"
+ LIBS="$LIBS $LOCAL_LIBS"
+ CPPFLAGS_old="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $VTK_INCLUDES"
+
+dnl VTKPY_MODULES="$VTKHOME/python"
+
+ AC_CACHE_VAL(salome_cv_lib_vtk,[
+ AC_TRY_LINK(
+#include
+, vtkPlane *p = vtkPlane::New();,
+ eval "salome_cv_lib_vtk=yes",eval "salome_cv_lib_vtk=no")
+ ])
+ vtk_ok="$salome_cv_lib_vtk"
+ LIBS="$LIBS_old"
+ CPPFLAGS="$CPPFLAGS_old"
+
+fi
+
+if test "x$vtk_ok" = "xno"
+then
+ AC_MSG_RESULT("no")
+ AC_MSG_WARN(unable to link with vtk library)
+else
+ AC_MSG_RESULT("yes")
+ VTK_LIBS="$LOCAL_LIBS"
+ VTK_MT_LIBS="$LOCAL_LIBS"
+fi
+
+AC_MSG_RESULT("for vtk: $vtk_ok")
+
+AC_LANG_RESTORE
+
+# Save cache
+AC_CACHE_SAVE
+
+])dnl
diff --git a/salome_adm/unix/config_files/config.guess b/salome_adm/unix/config_files/config.guess
new file mode 100755
index 000000000..0ce538bb8
--- /dev/null
+++ b/salome_adm/unix/config_files/config.guess
@@ -0,0 +1,1183 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+# Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Written by Per Bothner .
+# Please send patches to .
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit system type (host/target name).
+#
+# Only a few systems have been added to this list; please add others
+# (but try to keep the structure clean).
+#
+
+# Use $HOST_CC if defined. $CC may point to a cross-compiler
+if test x"$CC_FOR_BUILD" = x; then
+ if test x"$HOST_CC" != x; then
+ CC_FOR_BUILD="$HOST_CC"
+ else
+ if test x"$CC" != x; then
+ CC_FOR_BUILD="$CC"
+ else
+ CC_FOR_BUILD=cc
+ fi
+ fi
+fi
+
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 8/24/94.)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+dummy=dummy-$$
+trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # Netbsd (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ # Determine the machine/vendor (is the vendor relevant).
+ case "${UNAME_MACHINE}" in
+ amiga) machine=m68k-cbm ;;
+ arm32) machine=arm-unknown ;;
+ atari*) machine=m68k-atari ;;
+ sun3*) machine=m68k-sun ;;
+ mac68k) machine=m68k-apple ;;
+ macppc) machine=powerpc-apple ;;
+ hp3[0-9][05]) machine=m68k-hp ;;
+ ibmrt|romp-ibm) machine=romp-ibm ;;
+ *) machine=${UNAME_MACHINE}-unknown ;;
+ esac
+ # The Operating System including object format.
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep __ELF__ >/dev/null
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ # The OS release
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit 0 ;;
+ alpha:OSF1:*:*)
+ if test $UNAME_RELEASE = "V4.0"; then
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ fi
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ cat <$dummy.s
+ .data
+\$Lformat:
+ .byte 37,100,45,37,120,10,0 # "%d-%x\n"
+
+ .text
+ .globl main
+ .align 4
+ .ent main
+main:
+ .frame \$30,16,\$26,0
+ ldgp \$29,0(\$27)
+ .prologue 1
+ .long 0x47e03d80 # implver \$0
+ lda \$2,-1
+ .long 0x47e20c21 # amask \$2,\$1
+ lda \$16,\$Lformat
+ mov \$0,\$17
+ not \$1,\$18
+ jsr \$26,printf
+ ldgp \$29,0(\$26)
+ mov 0,\$16
+ jsr \$26,exit
+ .end main
+EOF
+ $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
+ if test "$?" = 0 ; then
+ case `./$dummy` in
+ 0-0)
+ UNAME_MACHINE="alpha"
+ ;;
+ 1-0)
+ UNAME_MACHINE="alphaev5"
+ ;;
+ 1-1)
+ UNAME_MACHINE="alphaev56"
+ ;;
+ 1-101)
+ UNAME_MACHINE="alphapca56"
+ ;;
+ 2-303)
+ UNAME_MACHINE="alphaev6"
+ ;;
+ 2-307)
+ UNAME_MACHINE="alphaev67"
+ ;;
+ esac
+ fi
+ rm -f $dummy.s $dummy
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit 0 ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit 0 ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit 0 ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-cbm-sysv4
+ exit 0;;
+ amiga:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit 0 ;;
+ arc64:OpenBSD:*:*)
+ echo mips64el-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ arc:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ hkmips:OpenBSD:*:*)
+ echo mips-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ pmax:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sgi:OpenBSD:*:*)
+ echo mips-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ wgrisc:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit 0 ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit 0;;
+ SR2?01:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit 0;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit 0 ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit 0 ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ i86pc:SunOS:5.*:*)
+ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit 0 ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit 0 ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ atari*:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit 0 ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit 0 ;;
+ sun3*:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mac68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit 0 ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit 0 ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit 0 ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD $dummy.c -o $dummy \
+ && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+ && rm $dummy.c $dummy && exit 0
+ rm -f $dummy.c $dummy
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit 0 ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit 0 ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit 0 ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit 0 ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit 0 ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit 0 ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit 0 ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit 0 ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i?86:AIX:*:*)
+ echo i386-ibm-aix
+ exit 0 ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ sed 's/^ //' << EOF >$dummy.c
+ #include
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
+ rm -f $dummy.c $dummy
+ echo rs6000-ibm-aix3.2.5
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit 0 ;;
+ *:AIX:*:4)
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=4.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit 0 ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit 0 ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit 0 ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit 0 ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit 0 ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit 0 ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit 0 ;;
+ 9000/[34678]??:HP-UX:*:*)
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include
+ #include
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
+ rm -f $dummy.c $dummy
+ esac
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ 3050*:HI-UX:*:*)
+ sed 's/^ //' << EOF >$dummy.c
+ #include
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
+ rm -f $dummy.c $dummy
+ echo unknown-hitachi-hiuxwe2
+ exit 0 ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit 0 ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit 0 ;;
+ *9??*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit 0 ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit 0 ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit 0 ;;
+ i?86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit 0 ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit 0 ;;
+ hppa*:OpenBSD:*:*)
+ echo hppa-unknown-openbsd
+ exit 0 ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ CRAY*X-MP:*:*:*)
+ echo xmp-cray-unicos
+ exit 0 ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE}
+ exit 0 ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
+ exit 0 ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*T3E:*:*:*)
+ echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY-2:*:*:*)
+ echo cray2-cray-unicos
+ exit 0 ;;
+ F300:UNIX_System_V:*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
+ F301:UNIX_System_V:*:*)
+ echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
+ exit 0 ;;
+ hp300:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ i?86:BSD/386:*:* | i?86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:FreeBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit 0 ;;
+ *:OpenBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ exit 0 ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit 0 ;;
+ i*:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit 0 ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i386-pc-interix
+ exit 0 ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit 0 ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit 0 ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ *:GNU:*:*)
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit 0 ;;
+ *:Linux:*:*)
+
+ # The BFD linker knows what the default object file format is, so
+ # first see if it will tell us. cd to the root directory to prevent
+ # problems with other programs or directories called `ld' in the path.
+ ld_help_string=`cd /; ld --help 2>&1`
+ ld_supported_emulations=`echo $ld_help_string \
+ | sed -ne '/supported emulations:/!d
+ s/[ ][ ]*/ /g
+ s/.*supported emulations: *//
+ s/ .*//
+ p'`
+ case "$ld_supported_emulations" in
+ *ia64)
+ echo "${UNAME_MACHINE}-unknown-linux"
+ exit 0
+ ;;
+ i?86linux)
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+ exit 0
+ ;;
+ elf_i?86)
+ echo "${UNAME_MACHINE}-pc-linux"
+ exit 0
+ ;;
+ i?86coff)
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+ exit 0
+ ;;
+ sparclinux)
+ echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
+ exit 0
+ ;;
+ armlinux)
+ echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
+ exit 0
+ ;;
+ elf32arm*)
+ echo "${UNAME_MACHINE}-unknown-linux-gnuoldld"
+ exit 0
+ ;;
+ armelf_linux*)
+ echo "${UNAME_MACHINE}-unknown-linux-gnu"
+ exit 0
+ ;;
+ m68klinux)
+ echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
+ exit 0
+ ;;
+ elf32ppc | elf32ppclinux)
+ # Determine Lib Version
+ cat >$dummy.c <
+#if defined(__GLIBC__)
+extern char __libc_version[];
+extern char __libc_release[];
+#endif
+main(argc, argv)
+ int argc;
+ char *argv[];
+{
+#if defined(__GLIBC__)
+ printf("%s %s\n", __libc_version, __libc_release);
+#else
+ printf("unkown\n");
+#endif
+ return 0;
+}
+EOF
+ LIBC=""
+ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
+ if test "$?" = 0 ; then
+ ./$dummy | grep 1\.99 > /dev/null
+ if test "$?" = 0 ; then
+ LIBC="libc1"
+ fi
+ fi
+ rm -f $dummy.c $dummy
+ echo powerpc-unknown-linux-gnu${LIBC}
+ exit 0
+ ;;
+ esac
+
+ if test "${UNAME_MACHINE}" = "alpha" ; then
+ cat <$dummy.s
+ .data
+ \$Lformat:
+ .byte 37,100,45,37,120,10,0 # "%d-%x\n"
+
+ .text
+ .globl main
+ .align 4
+ .ent main
+ main:
+ .frame \$30,16,\$26,0
+ ldgp \$29,0(\$27)
+ .prologue 1
+ .long 0x47e03d80 # implver \$0
+ lda \$2,-1
+ .long 0x47e20c21 # amask \$2,\$1
+ lda \$16,\$Lformat
+ mov \$0,\$17
+ not \$1,\$18
+ jsr \$26,printf
+ ldgp \$29,0(\$26)
+ mov 0,\$16
+ jsr \$26,exit
+ .end main
+EOF
+ LIBC=""
+ $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
+ if test "$?" = 0 ; then
+ case `./$dummy` in
+ 0-0)
+ UNAME_MACHINE="alpha"
+ ;;
+ 1-0)
+ UNAME_MACHINE="alphaev5"
+ ;;
+ 1-1)
+ UNAME_MACHINE="alphaev56"
+ ;;
+ 1-101)
+ UNAME_MACHINE="alphapca56"
+ ;;
+ 2-303)
+ UNAME_MACHINE="alphaev6"
+ ;;
+ 2-307)
+ UNAME_MACHINE="alphaev67"
+ ;;
+ esac
+
+ objdump --private-headers $dummy | \
+ grep ld.so.1 > /dev/null
+ if test "$?" = 0 ; then
+ LIBC="libc1"
+ fi
+ fi
+ rm -f $dummy.s $dummy
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
+ elif test "${UNAME_MACHINE}" = "mips" ; then
+ cat >$dummy.c < /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+#ifdef __MIPSEB__
+ printf ("%s-unknown-linux-gnu\n", argv[1]);
+#endif
+#ifdef __MIPSEL__
+ printf ("%sel-unknown-linux-gnu\n", argv[1]);
+#endif
+ return 0;
+}
+EOF
+ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
+ rm -f $dummy.c $dummy
+ elif test "${UNAME_MACHINE}" = "s390"; then
+ echo s390-ibm-linux && exit 0
+ else
+ # Either a pre-BFD a.out linker (linux-gnuoldld)
+ # or one that does not give us useful --help.
+ # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
+ # If ld does not provide *any* "supported emulations:"
+ # that means it is gnuoldld.
+ echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
+ test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
+
+ case "${UNAME_MACHINE}" in
+ i?86)
+ VENDOR=pc;
+ ;;
+ *)
+ VENDOR=unknown;
+ ;;
+ esac
+ # Determine whether the default compiler is a.out or elf
+ cat >$dummy.c <
+#ifdef __cplusplus
+#include /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+#ifdef __ELF__
+# ifdef __GLIBC__
+# if __GLIBC__ >= 2
+ printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
+# else
+ printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
+# endif
+# else
+ printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
+# endif
+#else
+ printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
+#endif
+ return 0;
+}
+EOF
+ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
+ rm -f $dummy.c $dummy
+ fi ;;
+# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
+# are messed up and put the nodename in both sysname and nodename.
+ i?86:DYNIX/ptx:4*:*)
+ echo i386-sequent-sysv4
+ exit 0 ;;
+ i?86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit 0 ;;
+ i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit 0 ;;
+ i?86:*:5:7*)
+ # Fixed at (any) Pentium or better
+ UNAME_MACHINE=i586
+ if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
+ echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ i?86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit 0 ;;
+ i?86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit 0 ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i386.
+ echo i386-pc-msdosdjgpp
+ exit 0 ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit 0 ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit 0 ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit 0 ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit 0 ;;
+ M68*:*:R3V[567]*:*)
+ test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+ 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4 && exit 0 ;;
+ m68*:LynxOS:2.*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit 0 ;;
+ i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit 0 ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit 0 ;;
+ PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says
+ echo i586-unisys-sysv4
+ exit 0 ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes .
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit 0 ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit 0 ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit 0 ;;
+ news*:NEWS-OS:*:6*)
+ echo mips-sony-newsos6
+ exit 0 ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit 0 ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit 0 ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit 0 ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Darwin:*:*)
+ echo `uname -p`-apple-darwin${UNAME_RELEASE}
+ exit 0 ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ if test "${UNAME_MACHINE}" = "x86pc"; then
+ UNAME_MACHINE=pc
+ fi
+ echo `uname -p`-${UNAME_MACHINE}-nto-qnx
+ exit 0 ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit 0 ;;
+ NSR-W:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit 0 ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit 0 ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+cat >$dummy.c <
+# include
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+#if !defined (ultrix)
+ printf ("vax-dec-bsd\n"); exit (0);
+#else
+ printf ("vax-dec-ultrix\n"); exit (0);
+#endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
+rm -f $dummy.c $dummy
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ c34*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ c38*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ c4*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ esac
+fi
+
+#echo '(Unable to guess system type)' 1>&2
+
+exit 1
diff --git a/salome_adm/unix/config_files/config.sub b/salome_adm/unix/config_files/config.sub
new file mode 100755
index 000000000..c8e77851e
--- /dev/null
+++ b/salome_adm/unix/config_files/config.sub
@@ -0,0 +1,1268 @@
+#! /bin/sh
+# Configuration validation subroutine script, version 1.1.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+# Free Software Foundation, Inc.
+#
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine. It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Written by Per Bothner .
+# Please send patches to .
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+if [ x$1 = x ]
+then
+ echo Configuration name missing. 1>&2
+ echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
+ echo "or $0 ALIAS" 1>&2
+ echo where ALIAS is a recognized configuration type. 1>&2
+ exit 1
+fi
+
+# First pass through any local machine types.
+case $1 in
+ *local*)
+ echo $1
+ exit 0
+ ;;
+ *)
+ ;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+ nto-qnx* | linux-gnu*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
+ ;;
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ -apple)
+ os=
+ basic_machine=$1
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
+ | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
+ | 580 | i960 | h8300 \
+ | x86 | ppcbe | mipsbe | mipsle | shbe | shle | armbe | armle \
+ | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
+ | hppa64 \
+ | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
+ | alphaev6[78] \
+ | we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
+ | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
+ | mips64orion | mips64orionel | mipstx39 | mipstx39el \
+ | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
+ | mips64vr5000 | miprs64vr5000el | mcore \
+ | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
+ | thumb | d10v | fr30 | avr)
+ basic_machine=$basic_machine-unknown
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i[34567]86)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ # FIXME: clean up the formatting here.
+ vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
+ | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
+ | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
+ | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
+ | xmp-* | ymp-* \
+ | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* | armbe-* | armle-* \
+ | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
+ | hppa2.0n-* | hppa64-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
+ | alphaev6[78]-* \
+ | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
+ | clipper-* | orion-* \
+ | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
+ | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
+ | mips64el-* | mips64orion-* | mips64orionel-* \
+ | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
+ | mipstx39-* | mipstx39el-* | mcore-* \
+ | f301-* | armv*-* | s390-* | sv1-* | t3e-* \
+ | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
+ | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* \
+ | bs2000-*)
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-cbm
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-cbm
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-cbm
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ cray2)
+ basic_machine=cray2-cray
+ os=-unicos
+ ;;
+ [ctj]90-cray)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ basic_machine=m68k-motorola
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+ ;;
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
+ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+ genix)
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+# I'm not sure what "Sysv32" means. Should this be sysv3.2?
+ i[34567]86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+ i[34567]86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+ i[34567]86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+ i[34567]86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
+ ;;
+ i386-go32 | go32)
+ basic_machine=i386-unknown
+ os=-go32
+ ;;
+ i386-mingw32 | mingw32)
+ basic_machine=i386-unknown
+ os=-mingw32
+ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+ -irix*)
+ ;;
+ *)
+ os=-irix4
+ ;;
+ esac
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mipsel*-linux*)
+ basic_machine=mipsel-unknown
+ os=-linux-gnu
+ ;;
+ mips*-linux*)
+ basic_machine=mips-unknown
+ os=-linux-gnu
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ mmix*)
+ basic_machine=mmix-knuth
+ os=-mmixware
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ msdos)
+ basic_machine=i386-unknown
+ os=-msdos
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
+ ;;
+ news-3600 | risc-news)
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+ -nextstep* )
+ ;;
+ -ns2*)
+ os=-nextstep2
+ ;;
+ *)
+ os=-nextstep3
+ ;;
+ esac
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+ op50n-* | op60c-*)
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
+ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+ pbb)
+ basic_machine=m68k-tti
+ ;;
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+ pentium | p5 | k5 | k6 | nexen)
+ basic_machine=i586-pc
+ ;;
+ pentiumpro | p6 | 6x86)
+ basic_machine=i686-pc
+ ;;
+ pentiumii | pentium2)
+ basic_machine=i786-pc
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexen-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumii-* | pentium2-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+ power) basic_machine=rs6000-ibm
+ ;;
+ ppc) basic_machine=powerpc-unknown
+ ;;
+ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ps2)
+ basic_machine=i386-ibm
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
+ sparclite-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+ ;;
+ spur)
+ basic_machine=spur-unknown
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
+ ;;
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+ t3e)
+ basic_machine=t3e-cray
+ os=-unicos
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+ tx39el)
+ basic_machine=mipstx39el-unknown
+ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ xmp)
+ basic_machine=xmp-cray
+ os=-unicos
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+ ;;
+
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
+ ;;
+ op50n)
+ basic_machine=hppa1.1-oki
+ ;;
+ op60c)
+ basic_machine=hppa1.1-oki
+ ;;
+ mips)
+ if [ x$os = x-linux-gnu ]; then
+ basic_machine=mips-unknown
+ else
+ basic_machine=mips-mips
+ fi
+ ;;
+ romp)
+ basic_machine=romp-ibm
+ ;;
+ rs6000)
+ basic_machine=rs6000-ibm
+ ;;
+ vax)
+ basic_machine=vax-dec
+ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sparc | sparcv9)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ c4x*)
+ basic_machine=c4x-none
+ os=-coff
+ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ ;;
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+ -solaris)
+ os=-solaris2
+ ;;
+ -svr4*)
+ os=-sysv4
+ ;;
+ -unixware*)
+ os=-sysv4.2uw
+ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # First accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
+ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+ case $basic_machine in
+ x86-* | i[34567]86-*)
+ ;;
+ *)
+ os=-nto$os
+ ;;
+ esac
+ ;;
+ -nto*)
+ os=-nto-qnx
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
+ ;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ ;;
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
+ -opened*)
+ os=-openedition
+ ;;
+ -wince*)
+ os=-wince
+ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+ -osf*)
+ os=-osf
+ ;;
+ -utek*)
+ os=-bsd
+ ;;
+ -dynix*)
+ os=-bsd
+ ;;
+ -acis*)
+ os=-aos
+ ;;
+ -386bsd)
+ os=-bsd
+ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
+ -nsk)
+ os=-nsk
+ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ -sinix*)
+ os=-sysv4
+ ;;
+ -triton*)
+ os=-sysv3
+ ;;
+ -oss*)
+ os=-sysv3
+ ;;
+ -svr4)
+ os=-sysv4
+ ;;
+ -svr3)
+ os=-sysv3
+ ;;
+ -sysvr4)
+ os=-sysv4
+ ;;
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
+ -ose*)
+ os=-ose
+ ;;
+ -es1800*)
+ os=-ose
+ ;;
+ -xenix)
+ os=-xenix
+ ;;
+ -*mint | -*MiNT)
+ os=-mint
+ ;;
+ -none)
+ ;;
+ *)
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+ *-acorn)
+ os=-riscix1.2
+ ;;
+ arm*-rebel)
+ os=-linux
+ ;;
+ arm*-semi)
+ os=-aout
+ ;;
+ pdp11-*)
+ os=-none
+ ;;
+ *-dec | vax-*)
+ os=-ultrix4.2
+ ;;
+ m68*-apollo)
+ os=-domain
+ ;;
+ i386-sun)
+ os=-sunos4.0.2
+ ;;
+ m68000-sun)
+ os=-sunos3
+ # This also exists in the configure program, but was not the
+ # default.
+ # os=-sunos4
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+ mips*-*)
+ os=-elf
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
+ *-be)
+ os=-beos
+ ;;
+ *-ibm)
+ os=-aix
+ ;;
+ *-wec)
+ os=-proelf
+ ;;
+ *-winbond)
+ os=-proelf
+ ;;
+ *-oki)
+ os=-proelf
+ ;;
+ *-hp)
+ os=-hpux
+ ;;
+ *-hitachi)
+ os=-hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=-sysv
+ ;;
+ *-cbm)
+ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+ ;;
+ *-dolphin)
+ os=-sysv3
+ ;;
+ m68k-ccur)
+ os=-rtu
+ ;;
+ m88k-omron*)
+ os=-luna
+ ;;
+ *-next )
+ os=-nextstep
+ ;;
+ *-sequent)
+ os=-ptx
+ ;;
+ *-crds)
+ os=-unos
+ ;;
+ *-ns)
+ os=-genix
+ ;;
+ i370-*)
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
+ ;;
+ *-gould)
+ os=-sysv
+ ;;
+ *-highlevel)
+ os=-bsd
+ ;;
+ *-encore)
+ os=-bsd
+ ;;
+ *-sgi)
+ os=-irix
+ ;;
+ *-siemens)
+ os=-sysv4
+ ;;
+ *-masscomp)
+ os=-rtu
+ ;;
+ f301-fujitsu)
+ os=-uxpv
+ ;;
+ *-rom68k)
+ os=-coff
+ ;;
+ *-*bug)
+ os=-coff
+ ;;
+ *-apple)
+ os=-macos
+ ;;
+ *-atari*)
+ os=-mint
+ ;;
+ *)
+ os=-none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+ *-unknown)
+ case $os in
+ -riscix*)
+ vendor=acorn
+ ;;
+ -sunos*)
+ vendor=sun
+ ;;
+ -aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+ vendor=be
+ ;;
+ -hpux*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+ -unos*)
+ vendor=crds
+ ;;
+ -dgux*)
+ vendor=dg
+ ;;
+ -luna*)
+ vendor=omron
+ ;;
+ -genix*)
+ vendor=ns
+ ;;
+ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -ptx*)
+ vendor=sequent
+ ;;
+ -vxsim* | -vxworks*)
+ vendor=wrs
+ ;;
+ -aux*)
+ vendor=apple
+ ;;
+ -hms*)
+ vendor=hitachi
+ ;;
+ -mpw* | -macos*)
+ vendor=apple
+ ;;
+ -*mint | -*MiNT)
+ vendor=atari
+ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+esac
+
+echo $basic_machine$os
diff --git a/salome_adm/unix/config_files/enable_pthreads.m4 b/salome_adm/unix/config_files/enable_pthreads.m4
new file mode 100644
index 000000000..6c1073b0a
--- /dev/null
+++ b/salome_adm/unix/config_files/enable_pthreads.m4
@@ -0,0 +1,20 @@
+dnl@synopsis ENABLE_PTHREADS
+dnl
+dnl modify CFLAGS, CXXFLAGS and LIBS for compiling pthread-based programs.
+dnl
+dnl@author (C) Ruslan Shevchenko , 1998, 2000
+dnl@id $Id$
+dnl
+dnl
+AC_DEFUN([ENABLE_PTHREADS],[
+AC_REQUIRE([CHECK_PTHREADS])
+
+if test -z "$enable_pthreads_done"
+then
+ CFLAGS="$CFLAGS $CFLAGS_PTHREADS"
+ CXXFLAGS="$CXXFLAGS $CXXFLAGS_PTHREADS"
+ LIBS="$LIBS $LIBS_PTHREADS"
+fi
+enable_pthreads_done=yes
+])dnl
+dnl
diff --git a/salome_adm/unix/config_files/install-sh b/salome_adm/unix/config_files/install-sh
new file mode 100755
index 000000000..e9de23842
--- /dev/null
+++ b/salome_adm/unix/config_files/install-sh
@@ -0,0 +1,251 @@
+#!/bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission. M.I.T. makes no representations about the
+# suitability of this software for any purpose. It is provided "as is"
+# without express or implied warranty.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch. It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+ case $1 in
+ -c) instcmd="$cpprog"
+ shift
+ continue;;
+
+ -d) dir_arg=true
+ shift
+ continue;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd="$stripprog"
+ shift
+ continue;;
+
+ -t=*) transformarg=`echo $1 | sed 's/-t=//'`
+ shift
+ continue;;
+
+ -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+ shift
+ continue;;
+
+ *) if [ x"$src" = x ]
+ then
+ src=$1
+ else
+ # this colon is to work around a 386BSD /bin/sh bug
+ :
+ dst=$1
+ fi
+ shift
+ continue;;
+ esac
+done
+
+if [ x"$src" = x ]
+then
+ echo "install: no input file specified"
+ exit 1
+else
+ true
+fi
+
+if [ x"$dir_arg" != x ]; then
+ dst=$src
+ src=""
+
+ if [ -d $dst ]; then
+ instcmd=:
+ chmodcmd=""
+ else
+ instcmd=mkdir
+ fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad
+# if $src (and thus $dsttmp) contains '*'.
+
+ if [ -f $src -o -d $src ]
+ then
+ true
+ else
+ echo "install: $src does not exist"
+ exit 1
+ fi
+
+ if [ x"$dst" = x ]
+ then
+ echo "install: no destination specified"
+ exit 1
+ else
+ true
+ fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+ if [ -d $dst ]
+ then
+ dst="$dst"/`basename $src`
+ else
+ true
+ fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+# this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='
+'
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+ pathcomp="${pathcomp}${1}"
+ shift
+
+ if [ ! -d "${pathcomp}" ] ;
+ then
+ $mkdirprog "${pathcomp}"
+ else
+ true
+ fi
+
+ pathcomp="${pathcomp}/"
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+ $doit $instcmd $dst &&
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+ if [ x"$transformarg" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ dstfile=`basename $dst $transformbasename |
+ sed $transformarg`$transformbasename
+ fi
+
+# don't allow the sed command to completely eliminate the filename
+
+ if [ x"$dstfile" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ true
+ fi
+
+# Make a temp file name in the proper directory.
+
+ dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+ $doit $instcmd $src $dsttmp &&
+
+ trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing. If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+
+# Now rename the file to the real destination.
+
+ $doit $rmcmd -f $dstdir/$dstfile &&
+ $doit $mvcmd $dsttmp $dstdir/$dstfile
+
+fi &&
+
+
+exit 0
diff --git a/salome_adm/unix/config_files/libtool.m4 b/salome_adm/unix/config_files/libtool.m4
new file mode 100644
index 000000000..8c5cd7d5a
--- /dev/null
+++ b/salome_adm/unix/config_files/libtool.m4
@@ -0,0 +1,439 @@
+## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
+## Copyright (C) 1996-1999, 2000 Free Software Foundation, Inc.
+## Originally by Gordon Matzigkeit , 1996
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+##
+## As a special exception to the GNU General Public License, if you
+## distribute this file as part of a program that contains a
+## configuration script generated by Autoconf, you may include it under
+## the same distribution terms that you use for the rest of that program.
+
+# serial 40 AC_PROG_LIBTOOL
+AC_DEFUN(AC_PROG_LIBTOOL,
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+
+# Save cache, so that ltconfig can load it
+AC_CACHE_SAVE
+
+# Actually configure libtool. ac_aux_dir is where install-sh is found.
+CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
+LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
+LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
+DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
+${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
+$libtool_flags $ac_aux_dir/ltmain.sh $lt_target \
+|| AC_MSG_ERROR([libtool configure failed])
+
+# Reload cache, that may have been modified by ltconfig
+AC_CACHE_LOAD
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Redirect the config.log output again, so that the ltconfig log is not
+# clobbered by the next message.
+exec 5>>./config.log
+])
+
+AC_DEFUN(AC_LIBTOOL_SETUP,
+[AC_PREREQ(2.13)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_RANLIB])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+dnl
+
+case "$target" in
+NONE) lt_target="$host" ;;
+*) lt_target="$target" ;;
+esac
+
+# Check for any special flags to pass to ltconfig.
+#
+# the following will cause an existing older ltconfig to fail, so
+# we ignore this at the expense of the cache file... Checking this
+# will just take longer ... bummer!
+#libtool_flags="--cache-file=$cache_file"
+#
+test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
+test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
+test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
+test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
+test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
+ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
+[libtool_flags="$libtool_flags --enable-dlopen"])
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+[libtool_flags="$libtool_flags --enable-win32-dll"])
+AC_ARG_ENABLE(libtool-lock,
+ [ --disable-libtool-lock avoid locking (might break parallel builds)])
+test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
+test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case "$lt_target" in
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+ [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw*)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+ ;;
+])
+esac
+])
+
+# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
+AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
+
+# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
+AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
+
+# AC_ENABLE_SHARED - implement the --enable-shared flag
+# Usage: AC_ENABLE_SHARED[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AC_ENABLE_SHARED, [dnl
+define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(shared,
+changequote(<<, >>)dnl
+<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_shared=yes ;;
+no) enable_shared=no ;;
+*)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
+])
+
+# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
+AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)])
+
+# AC_ENABLE_STATIC - implement the --enable-static flag
+# Usage: AC_ENABLE_STATIC[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AC_ENABLE_STATIC, [dnl
+define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(static,
+changequote(<<, >>)dnl
+<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_static=yes ;;
+no) enable_static=no ;;
+*)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
+])
+
+# AC_DISABLE_STATIC - set the default static flag to --disable-static
+AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)])
+
+
+# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
+# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
+define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(fast-install,
+changequote(<<, >>)dnl
+<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_fast_install=yes ;;
+no) enable_fast_install=no ;;
+*)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
+])
+
+# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
+AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)])
+
+# AC_PROG_LD - find the path to the GNU or non-GNU linker
+AC_DEFUN(AC_PROG_LD,
+[AC_ARG_WITH(gnu-ld,
+[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$ac_cv_prog_gcc" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by GCC])
+ ac_prog=`($CC -print-prog-name=ld) 2>&5`
+ case "$ac_prog" in
+ # Accept absolute paths.
+changequote(,)dnl
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+changequote([,])dnl
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(ac_cv_path_LD,
+[if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ ac_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+ test "$with_gnu_ld" != no && break
+ else
+ test "$with_gnu_ld" != yes && break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ ac_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$ac_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])
+
+AC_DEFUN(AC_PROG_LD_GNU,
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 &5; then
+ ac_cv_prog_gnu_ld=yes
+else
+ ac_cv_prog_gnu_ld=no
+fi])
+])
+
+# AC_PROG_NM - find the path to a BSD-compatible name lister
+AC_DEFUN(AC_PROG_NM,
+[AC_MSG_CHECKING([for BSD-compatible nm])
+AC_CACHE_VAL(ac_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ ac_cv_path_NM="$NM"
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ ac_cv_path_NM="$ac_dir/nm -B"
+ break
+ elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ ac_cv_path_NM="$ac_dir/nm -p"
+ break
+ else
+ ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
+fi])
+NM="$ac_cv_path_NM"
+AC_MSG_RESULT([$NM])
+])
+
+# AC_CHECK_LIBM - check for math library
+AC_DEFUN(AC_CHECK_LIBM,
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case "$lt_target" in
+*-*-beos* | *-*-cygwin*)
+ # These system don't have libm
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+ AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, main, LIBM="-lm")
+ ;;
+esac
+])
+
+# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl convenience library and INCLTDL to the include flags for
+# the libltdl header and adds --enable-ltdl-convenience to the
+# configure arguments. Note that LIBLTDL and INCLTDL are not
+# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not
+# provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed
+# with '${top_builddir}/' and INCLTDL will be prefixed with
+# '${top_srcdir}/' (note the single quotes!). If your package is not
+# flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ case "$enable_ltdl_convenience" in
+ no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+ "") enable_ltdl_convenience=yes
+ ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+ esac
+ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+ INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+])
+
+# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl installable library and INCLTDL to the include flags for
+# the libltdl header and adds --enable-ltdl-install to the configure
+# arguments. Note that LIBLTDL and INCLTDL are not AC_SUBSTed, nor is
+# AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed
+# libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will
+# be prefixed with '${top_builddir}/' and INCLTDL will be prefixed
+# with '${top_srcdir}/' (note the single quotes!). If your package is
+# not flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ AC_CHECK_LIB(ltdl, main,
+ [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+ [if test x"$enable_ltdl_install" = xno; then
+ AC_MSG_WARN([libltdl not installed, but installation disabled])
+ else
+ enable_ltdl_install=yes
+ fi
+ ])
+ if test x"$enable_ltdl_install" = x"yes"; then
+ ac_configure_args="$ac_configure_args --enable-ltdl-install"
+ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+ INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+ else
+ ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+ LIBLTDL="-lltdl"
+ INCLTDL=
+ fi
+])
+
+dnl old names
+AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
+AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
+AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
+AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
+AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
+AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
+AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
+
+dnl This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])dnl
diff --git a/salome_adm/unix/config_files/ltconfig b/salome_adm/unix/config_files/ltconfig
new file mode 100755
index 000000000..c14d83c16
--- /dev/null
+++ b/salome_adm/unix/config_files/ltconfig
@@ -0,0 +1,3114 @@
+#! /bin/sh
+
+# ltconfig - Create a system-specific libtool.
+# Copyright (C) 1996-1999 Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit , 1996
+#
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A lot of this script is taken from autoconf-2.10.
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+echo=echo
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell.
+ exec "$SHELL" "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat </dev/null`}
+ case X$UNAME in
+ *-DOS) PATH_SEPARATOR=';' ;;
+ *) PATH_SEPARATOR=':' ;;
+ esac
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+if test "X${echo_test_string+set}" != Xset; then
+ # find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+ echo_test_string="`eval $cmd`" &&
+ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then
+ break
+ fi
+ done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" != 'X\t' ||
+ test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+ for dir in $PATH /usr/ucb; do
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+ echo="$dir/echo"
+ break
+ fi
+ done
+ IFS="$save_ifs"
+
+ if test "X$echo" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+ test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ echo='print -r'
+ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running ltconfig again with it.
+ ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}"
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
+ else
+ # Try using printf.
+ echo='printf "%s\n"'
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
+ test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+ CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL"
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
+ test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "$0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ echo=echo
+ fi
+ fi
+ fi
+ fi
+fi
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e s/^X//'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# The name of this program.
+progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
+
+# Constants:
+PROGRAM=ltconfig
+PACKAGE=libtool
+VERSION=1.3.5
+TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)"
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+rm="rm -f"
+
+help="Try \`$progname --help' for more information."
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+enable_shared=yes
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+enable_static=yes
+enable_fast_install=yes
+enable_dlopen=unknown
+enable_win32_dll=no
+ltmain=
+silent=
+srcdir=
+ac_config_guess=
+ac_config_sub=
+host=
+nonopt=
+ofile="$default_ofile"
+verify_host=yes
+with_gcc=no
+with_gnu_ld=no
+need_locks=yes
+ac_ext=c
+objext=o
+libext=a
+exeext=
+cache_file=
+
+old_AR="$AR"
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+old_CPPFLAGS="$CPPFLAGS"
+old_LDFLAGS="$LDFLAGS"
+old_LD="$LD"
+old_LN_S="$LN_S"
+old_LIBS="$LIBS"
+old_NM="$NM"
+old_RANLIB="$RANLIB"
+old_DLLTOOL="$DLLTOOL"
+old_OBJDUMP="$OBJDUMP"
+old_AS="$AS"
+
+# Parse the command line options.
+args=
+prev=
+for option
+do
+ case "$option" in
+ -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ eval "$prev=\$option"
+ prev=
+ continue
+ fi
+
+ case "$option" in
+ --help) cat <&2
+ echo "$help" 1>&2
+ exit 1
+ ;;
+
+ *)
+ if test -z "$ltmain"; then
+ ltmain="$option"
+ elif test -z "$host"; then
+# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1
+# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then
+# echo "$progname: warning \`$option' is not a valid host type" 1>&2
+# fi
+ host="$option"
+ else
+ echo "$progname: too many arguments" 1>&2
+ echo "$help" 1>&2
+ exit 1
+ fi ;;
+ esac
+done
+
+if test -z "$ltmain"; then
+ echo "$progname: you must specify a LTMAIN file" 1>&2
+ echo "$help" 1>&2
+ exit 1
+fi
+
+if test ! -f "$ltmain"; then
+ echo "$progname: \`$ltmain' does not exist" 1>&2
+ echo "$help" 1>&2
+ exit 1
+fi
+
+# Quote any args containing shell metacharacters.
+ltconfig_args=
+for arg
+do
+ case "$arg" in
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ltconfig_args="$ltconfig_args '$arg'" ;;
+ *) ltconfig_args="$ltconfig_args $arg" ;;
+ esac
+done
+
+# A relevant subset of AC_INIT.
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 5 compiler messages saved in config.log
+# 6 checking for... messages and results
+if test "$silent" = yes; then
+ exec 6>/dev/null
+else
+ exec 6>&1
+fi
+exec 5>>./config.log
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi
+if test "X${LANG+set}" = Xset; then LANG=C; export LANG; fi
+
+if test -n "$cache_file" && test -r "$cache_file"; then
+ echo "loading cache $cache_file within ltconfig"
+ . $cache_file
+fi
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+if test -z "$srcdir"; then
+ # Assume the source directory is the same one as the path to LTMAIN.
+ srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'`
+ test "$srcdir" = "$ltmain" && srcdir=.
+fi
+
+trap "$rm conftest*; exit 1" 1 2 15
+if test "$verify_host" = yes; then
+ # Check for config.guess and config.sub.
+ ac_aux_dir=
+ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/config.guess; then
+ ac_aux_dir=$ac_dir
+ break
+ fi
+ done
+ if test -z "$ac_aux_dir"; then
+ echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2
+ echo "$help" 1>&2
+ exit 1
+ fi
+ ac_config_guess=$ac_aux_dir/config.guess
+ ac_config_sub=$ac_aux_dir/config.sub
+
+ # Make sure we can run config.sub.
+ if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then :
+ else
+ echo "$progname: cannot run $ac_config_sub" 1>&2
+ echo "$help" 1>&2
+ exit 1
+ fi
+
+ echo $ac_n "checking host system type""... $ac_c" 1>&6
+
+ host_alias=$host
+ case "$host_alias" in
+ "")
+ if host_alias=`$SHELL $ac_config_guess`; then :
+ else
+ echo "$progname: cannot guess host type; you must specify one" 1>&2
+ echo "$help" 1>&2
+ exit 1
+ fi ;;
+ esac
+ host=`$SHELL $ac_config_sub $host_alias`
+ echo "$ac_t$host" 1>&6
+
+ # Make sure the host verified.
+ test -z "$host" && exit 1
+
+elif test -z "$host"; then
+ echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2
+ echo "$help" 1>&2
+ exit 1
+else
+ host_alias=$host
+fi
+
+# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+case "$host_os" in
+linux-gnu*) ;;
+linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+esac
+
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+case "$host_os" in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR cru $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+# Set a sane default for `AR'.
+test -z "$AR" && AR=ar
+
+# Set a sane default for `OBJDUMP'.
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+# If RANLIB is not set, then run the test.
+if test "${RANLIB+set}" != "set"; then
+ result=no
+
+ echo $ac_n "checking for ranlib... $ac_c" 1>&6
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+ for dir in $PATH; do
+ test -z "$dir" && dir=.
+ if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then
+ RANLIB="ranlib"
+ result="ranlib"
+ break
+ fi
+ done
+ IFS="$save_ifs"
+
+ echo "$ac_t$result" 1>&6
+fi
+
+if test -n "$RANLIB"; then
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+fi
+
+# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin.
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$AS" && AS=as
+
+# Check to see if we are using GCC.
+if test "$with_gcc" != yes || test -z "$CC"; then
+ # If CC is not set, then try to find GCC or a usable CC.
+ if test -z "$CC"; then
+ echo $ac_n "checking for gcc... $ac_c" 1>&6
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+ for dir in $PATH; do
+ test -z "$dir" && dir=.
+ if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then
+ CC="gcc"
+ break
+ fi
+ done
+ IFS="$save_ifs"
+
+ if test -n "$CC"; then
+ echo "$ac_t$CC" 1>&6
+ else
+ echo "$ac_t"no 1>&6
+ fi
+ fi
+
+ # Not "gcc", so try "cc", rejecting "/usr/ucb/cc".
+ if test -z "$CC"; then
+ echo $ac_n "checking for cc... $ac_c" 1>&6
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+ cc_rejected=no
+ for dir in $PATH; do
+ test -z "$dir" && dir=.
+ if test -f $dir/cc || test -f $dir/cc$ac_exeext; then
+ if test "$dir/cc" = "/usr/ucb/cc"; then
+ cc_rejected=yes
+ continue
+ fi
+ CC="cc"
+ break
+ fi
+ done
+ IFS="$save_ifs"
+ if test $cc_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $CC
+ shift
+ if test $# -gt 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same name, so the bogon will be chosen
+ # first if we set CC to just the name; use the full file name.
+ shift
+ set dummy "$dir/cc" "$@"
+ shift
+ CC="$@"
+ fi
+ fi
+
+ if test -n "$CC"; then
+ echo "$ac_t$CC" 1>&6
+ else
+ echo "$ac_t"no 1>&6
+ fi
+
+ if test -z "$CC"; then
+ echo "$progname: error: no acceptable cc found in \$PATH" 1>&2
+ exit 1
+ fi
+ fi
+
+ # Now see if the compiler is really GCC.
+ with_gcc=no
+ echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
+ echo "$progname:581: checking whether we are using GNU C" >&5
+
+ $rm conftest.c
+ cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ with_gcc=yes
+ fi
+ $rm conftest.c
+ echo "$ac_t$with_gcc" 1>&6
+fi
+
+# Allow CC to be a program name with arguments.
+set dummy $CC
+compiler="$2"
+
+echo $ac_n "checking for object suffix... $ac_c" 1>&6
+$rm conftest*
+echo 'int i = 1;' > conftest.c
+echo "$progname:603: checking for object suffix" >& 5
+if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then
+ # Append any warnings to the config.log.
+ cat conftest.err 1>&5
+
+ for ac_file in conftest.*; do
+ case $ac_file in
+ *.c) ;;
+ *) objext=`echo $ac_file | sed -e s/conftest.//` ;;
+ esac
+ done
+else
+ cat conftest.err 1>&5
+ echo "$progname: failed program was:" >&5
+ cat conftest.c >&5
+fi
+$rm conftest*
+echo "$ac_t$objext" 1>&6
+
+echo $ac_n "checking for executable suffix... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_cv_exeext="no"
+ $rm conftest*
+ echo 'main () { return 0; }' > conftest.c
+ echo "$progname:629: checking for executable suffix" >& 5
+ if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then
+ # Append any warnings to the config.log.
+ cat conftest.err 1>&5
+
+ for ac_file in conftest.*; do
+ case $ac_file in
+ *.c | *.err | *.$objext ) ;;
+ *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;;
+ esac
+ done
+ else
+ cat conftest.err 1>&5
+ echo "$progname: failed program was:" >&5
+ cat conftest.c >&5
+ fi
+ $rm conftest*
+fi
+if test "X$ac_cv_exeext" = Xno; then
+ exeext=""
+else
+ exeext="$ac_cv_exeext"
+fi
+echo "$ac_t$ac_cv_exeext" 1>&6
+
+echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6
+pic_flag=
+special_shlib_compile_flags=
+wl=
+link_static_flag=
+no_builtin_flag=
+
+if test "$with_gcc" = yes; then
+ wl='-Wl,'
+ link_static_flag='-static'
+
+ case "$host_os" in
+ beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ aix*)
+ # Below there is a dirty hack to force normal static linking with -ldl
+ # The problem is because libdl dynamically linked with both libc and
+ # libC (AIX C++ library), which obviously doesn't included in libraries
+ # list by gcc. This cause undefined symbols with -static flags.
+ # This hack allows C programs to be linked with "-static -ldl", but
+ # we not sure about C++ programs.
+ link_static_flag="$link_static_flag ${wl}-lC"
+ ;;
+ cygwin* | mingw* | os2*)
+ # We can build DLLs from non-PIC.
+ ;;
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ pic_flag='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ pic_flag=-Kconform_pic
+ fi
+ ;;
+ *)
+ pic_flag='-fPIC'
+ ;;
+ esac
+else
+ # PORTME Check for PIC flags for the system compiler.
+ case "$host_os" in
+ aix3* | aix4*)
+ # All AIX code is PIC.
+ link_static_flag='-bnso -bI:/lib/syscalls.exp'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ # Is there a better link_static_flag that works with the bundled CC?
+ wl='-Wl,'
+ link_static_flag="${wl}-a ${wl}archive"
+ pic_flag='+Z'
+ ;;
+
+ irix5* | irix6*)
+ wl='-Wl,'
+ link_static_flag='-non_shared'
+ # PIC (with -KPIC) is the default.
+ ;;
+
+ cygwin* | mingw* | os2*)
+ # We can build DLLs from non-PIC.
+ ;;
+
+ osf3* | osf4* | osf5*)
+ # All OSF/1 code is PIC.
+ wl='-Wl,'
+ link_static_flag='-non_shared'
+ ;;
+
+ sco3.2v5*)
+ pic_flag='-Kpic'
+ link_static_flag='-dn'
+ special_shlib_compile_flags='-belf'
+ ;;
+
+ solaris*)
+ pic_flag='-KPIC'
+ link_static_flag='-Bstatic'
+ wl='-Wl,'
+ ;;
+
+ sunos4*)
+ pic_flag='-PIC'
+ link_static_flag='-Bstatic'
+ wl='-Qoption ld '
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ pic_flag='-KPIC'
+ link_static_flag='-Bstatic'
+ wl='-Wl,'
+ ;;
+
+ uts4*)
+ pic_flag='-pic'
+ link_static_flag='-Bstatic'
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ pic_flag='-Kconform_pic'
+ link_static_flag='-Bstatic'
+ fi
+ ;;
+ *)
+ can_build_shared=no
+ ;;
+ esac
+fi
+
+if test -n "$pic_flag"; then
+ echo "$ac_t$pic_flag" 1>&6
+
+ # Check to make sure the pic_flag actually works.
+ echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6
+ $rm conftest*
+ echo "int some_variable = 0;" > conftest.c
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $pic_flag -DPIC"
+ echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5
+ if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
+ # Append any warnings to the config.log.
+ cat conftest.err 1>&5
+
+ case "$host_os" in
+ hpux9* | hpux10* | hpux11*)
+ # On HP-UX, both CC and GCC only warn that PIC is supported... then they
+ # create non-PIC objects. So, if there were any warnings, we assume that
+ # PIC is not supported.
+ if test -s conftest.err; then
+ echo "$ac_t"no 1>&6
+ can_build_shared=no
+ pic_flag=
+ else
+ echo "$ac_t"yes 1>&6
+ pic_flag=" $pic_flag"
+ fi
+ ;;
+ *)
+ echo "$ac_t"yes 1>&6
+ pic_flag=" $pic_flag"
+ ;;
+ esac
+ else
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ can_build_shared=no
+ pic_flag=
+ echo "$ac_t"no 1>&6
+ fi
+ CFLAGS="$save_CFLAGS"
+ $rm conftest*
+else
+ echo "$ac_t"none 1>&6
+fi
+
+# Check to see if options -o and -c are simultaneously supported by compiler
+echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6
+$rm -r conftest 2>/dev/null
+mkdir conftest
+cd conftest
+$rm conftest*
+echo "int some_variable = 0;" > conftest.c
+mkdir out
+# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+# that will create temporary files in the current directory regardless of
+# the output directory. Thus, making CWD read-only will cause this test
+# to fail, enabling locking or at least warning the user not to do parallel
+# builds.
+chmod -w .
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -o out/conftest2.o"
+echo "$progname:829: checking if $compiler supports -c -o file.o" >&5
+if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then
+
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s out/conftest.err; then
+ echo "$ac_t"no 1>&6
+ compiler_c_o=no
+ else
+ echo "$ac_t"yes 1>&6
+ compiler_c_o=yes
+ fi
+else
+ # Append any errors to the config.log.
+ cat out/conftest.err 1>&5
+ compiler_c_o=no
+ echo "$ac_t"no 1>&6
+fi
+CFLAGS="$save_CFLAGS"
+chmod u+w .
+$rm conftest* out/*
+rmdir out
+cd ..
+rmdir conftest
+$rm -r conftest 2>/dev/null
+
+if test x"$compiler_c_o" = x"yes"; then
+ # Check to see if we can write to a .lo
+ echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6
+ $rm conftest*
+ echo "int some_variable = 0;" > conftest.c
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -c -o conftest.lo"
+ echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5
+if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then
+
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ echo "$ac_t"no 1>&6
+ compiler_o_lo=no
+ else
+ echo "$ac_t"yes 1>&6
+ compiler_o_lo=yes
+ fi
+ else
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ compiler_o_lo=no
+ echo "$ac_t"no 1>&6
+ fi
+ CFLAGS="$save_CFLAGS"
+ $rm conftest*
+else
+ compiler_o_lo=no
+fi
+
+# Check to see if we can do hard links to lock some files if needed
+hard_links="nottested"
+if test "$compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ echo "$ac_t$hard_links" 1>&6
+ $rm conftest*
+ if test "$hard_links" = no; then
+ echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+if test "$with_gcc" = yes; then
+ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
+ echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6
+ $rm conftest*
+ echo "int some_variable = 0;" > conftest.c
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c"
+ echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+ if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
+
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ echo "$ac_t"no 1>&6
+ compiler_rtti_exceptions=no
+ else
+ echo "$ac_t"yes 1>&6
+ compiler_rtti_exceptions=yes
+ fi
+ else
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ compiler_rtti_exceptions=no
+ echo "$ac_t"no 1>&6
+ fi
+ CFLAGS="$save_CFLAGS"
+ $rm conftest*
+
+ if test "$compiler_rtti_exceptions" = "yes"; then
+ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
+ else
+ no_builtin_flag=' -fno-builtin'
+ fi
+
+fi
+
+# Check for any special shared library compilation flags.
+if test -n "$special_shlib_compile_flags"; then
+ echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2
+ if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then :
+ else
+ echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2
+ can_build_shared=no
+ fi
+fi
+
+echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6
+$rm conftest*
+echo 'main(){return(0);}' > conftest.c
+save_LDFLAGS="$LDFLAGS"
+LDFLAGS="$LDFLAGS $link_static_flag"
+echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5
+if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+ echo "$ac_t$link_static_flag" 1>&6
+else
+ echo "$ac_t"none 1>&6
+ link_static_flag=
+fi
+LDFLAGS="$save_LDFLAGS"
+$rm conftest*
+
+if test -z "$LN_S"; then
+ # Check to see if we can use ln -s, or we need hard links.
+ echo $ac_n "checking whether ln -s works... $ac_c" 1>&6
+ $rm conftest.dat
+ if ln -s X conftest.dat 2>/dev/null; then
+ $rm conftest.dat
+ LN_S="ln -s"
+ else
+ LN_S=ln
+ fi
+ if test "$LN_S" = "ln -s"; then
+ echo "$ac_t"yes 1>&6
+ else
+ echo "$ac_t"no 1>&6
+ fi
+fi
+
+# Make sure LD is an absolute path.
+if test -z "$LD"; then
+ ac_prog=ld
+ if test "$with_gcc" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
+ echo "$progname:991: checking for ld used by GCC" >&5
+ ac_prog=`($CC -print-prog-name=ld) 2>&5`
+ case "$ac_prog" in
+ # Accept absolute paths.
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we are not using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+ elif test "$with_gnu_ld" = yes; then
+ echo $ac_n "checking for GNU ld... $ac_c" 1>&6
+ echo "$progname:1015: checking for GNU ld" >&5
+ else
+ echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
+ echo "$progname:1018: checking for non-GNU ld" >&5
+ fi
+
+ if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+ test "$with_gnu_ld" != no && break
+ else
+ test "$with_gnu_ld" != yes && break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ fi
+
+ if test -n "$LD"; then
+ echo "$ac_t$LD" 1>&6
+ else
+ echo "$ac_t"no 1>&6
+ fi
+
+ if test -z "$LD"; then
+ echo "$progname: error: no acceptable ld found in \$PATH" 1>&2
+ exit 1
+ fi
+fi
+
+# Check to see if it really is or is not GNU ld.
+echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6
+# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 &5; then
+ with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+echo "$ac_t$with_gnu_ld" 1>&6
+
+# See if the linker supports building shared libraries.
+echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6
+
+allow_undefined_flag=
+no_undefined_flag=
+need_lib_prefix=unknown
+need_version=unknown
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+archive_cmds=
+archive_expsym_cmds=
+old_archive_from_new_cmds=
+export_dynamic_flag_spec=
+whole_archive_flag_spec=
+thread_safe_flag_spec=
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+hardcode_shlibpath_var=unsupported
+runpath_var=
+always_export_symbols=no
+export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
+# include_expsyms should be a list of space-separated symbols to be *always*
+# included in the symbol list
+include_expsyms=
+# exclude_expsyms can be an egrep regular expression of symbols to exclude
+# it will be wrapped by ` (' and `)$', so one must not match beginning or
+# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+# as well as any symbol that contains `d'.
+exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+# platforms (ab)use it in PIC code, but their linkers get confused if
+# the symbol is explicitly referenced. Since portable code cannot
+# rely on this symbol name, it's probably fine to never include it in
+# preloaded symbol tables.
+
+case "$host_os" in
+cygwin* | mingw*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$with_gcc" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # See if GNU ld supports shared libraries.
+ case "$host_os" in
+ aix3* | aix4*)
+ # On AIX, the GNU linker is very broken
+ ld_shlibs=no
+ cat <&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+
+ # Samuel A. Falvo II reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can use
+ # them.
+ ld_shlibs=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw*)
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+
+ # Extract the symbol export list from an `--export-all' def file,
+ # then regenerate the def file from the symbol export list, so that
+ # the compiled dll only exports the symbol export list.
+ # Be careful not to strip the DATA tag left by newer dlltools.
+ export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
+ test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
+ $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~
+ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $objdir/$soname-def > $export_symbols'
+
+ # If DATA tags from a recent dlltool are present, honour them!
+ archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~
+ _lt_hint=1;
+ cat $export_symbols | while read symbol; do
+ set dummy \$symbol;
+ case \$# in
+ 2) echo " \$2 @ \$_lt_hint ; " >> $objdir/$soname-def;;
+ *) echo " \$2 @ \$_lt_hint \$3 ; " >> $objdir/$soname-def;;
+ esac;
+ _lt_hint=`expr 1 + \$_lt_hint`;
+ done~
+ test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
+ test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
+ $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
+ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
+ $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
+ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
+ $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
+
+ old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a'
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib'
+ # can we support soname and/or expsyms with a.out? -oliva
+ fi
+ ;;
+
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = yes; then
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ case $host_os in
+ cygwin* | mingw*)
+ # dlltool doesn't understand --whole-archive et. al.
+ whole_archive_flag_spec=
+ ;;
+ *)
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ ;;
+ esac
+ fi
+else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case "$host_os" in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$with_gcc" = yes && test -z "$link_static_flag"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix4*)
+ hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib'
+ hardcode_libdir_separator=':'
+ if test "$with_gcc" = yes; then
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct=yes
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ shared_flag='-shared'
+ else
+ shared_flag='${wl}-bM:SRE'
+ hardcode_direct=yes
+ fi
+ allow_undefined_flag=' ${wl}-berok'
+ archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}'
+ archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}'
+ case "$host_os" in aix4.[01]|aix4.[01].*)
+ # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on
+ always_export_symbols=yes ;;
+ esac
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs=no
+ ;;
+
+ cygwin* | mingw*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib /OUT:$oldlib$oldobjs'
+ fix_srcfile_path='`cygpath -w $srcfile`'
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ case "$host_os" in
+ hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;;
+ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;;
+ esac
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_minus_L=yes # Not in the search PATH, but as the default
+ # location of the library.
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ irix5* | irix6*)
+ if test "$with_gcc" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+ else
+ archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF
+ fi
+ hardcode_libdir_flag_spec='${wl}-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ openbsd*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def'
+ old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$with_gcc" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # As osf3* with the addition of the -msym flag
+ if test "$with_gcc" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ rhapsody*)
+ archive_cmds='$CC -bundle -undefined suppress -o $lib $libobjs $deplibs $linkopts'
+ hardcode_libdir_flags_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sco3.2v5*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case "$host_os" in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $linkopts'
+ else
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+ fi
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv5*)
+ no_undefined_flag=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
+ hardcode_libdir_flag_spec=
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4.2uw2*)
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts'
+ hardcode_direct=yes
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=no
+ hardcode_runpath_var=yes
+ runpath_var=LD_RUN_PATH
+ ;;
+
+ unixware7*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+fi
+echo "$ac_t$ld_shlibs" 1>&6
+test "$ld_shlibs" = no && can_build_shared=no
+
+if test -z "$NM"; then
+ echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6
+ case "$NM" in
+ [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path.
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+ for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ NM="$ac_dir/nm -B"
+ break
+ elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ NM="$ac_dir/nm -p"
+ break
+ else
+ NM=${NM="$ac_dir/nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$NM" && NM=nm
+ ;;
+ esac
+ echo "$ac_t$NM" 1>&6
+fi
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
+
+# Define system-specific variables.
+case "$host_os" in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*) # Its linker distinguishes data from code symbols
+ global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
+ ;;
+irix*)
+ symcode='[BCDEGRST]'
+ ;;
+solaris*)
+ symcode='[BDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
+ symcode='[ABCDGISTW]'
+fi
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Write the raw and C identifiers.
+ global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$/$symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+ $rm conftest*
+ cat > conftest.c <&5
+ if { (eval echo $progname:1654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { echo "$progname:1657: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
+
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if egrep ' nm_test_var$' "$nlist" >/dev/null; then
+ if egrep ' nm_test_func$' "$nlist" >/dev/null; then
+ cat < conftest.c
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+ # Now generate the symbol file.
+ eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c'
+
+ cat <> conftest.c
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr_t address;
+}
+lt_preloaded_symbols[] =
+{
+EOF
+ sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c
+ cat <<\EOF >> conftest.c
+ {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+ # Now try linking the two files.
+ mv conftest.$objext conftstm.$objext
+ save_LIBS="$LIBS"
+ save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$objext"
+ CFLAGS="$CFLAGS$no_builtin_flag"
+ if { (eval echo $progname:1709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+ pipe_works=yes
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.c >&5
+ fi
+ LIBS="$save_LIBS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.c >&5
+ fi
+ $rm conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ global_symbol_pipe=
+ fi
+done
+if test "$pipe_works" = yes; then
+ echo "${ac_t}ok" 1>&6
+else
+ echo "${ac_t}failed" 1>&6
+fi
+
+if test -z "$global_symbol_pipe"; then
+ global_symbol_to_cdecl=
+fi
+
+# Check hardcoding attributes.
+echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+ test -n "$runpath_var"; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$hardcode_shlibpath_var" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+echo "$ac_t$hardcode_action" 1>&6
+
+
+reload_flag=
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6
+# PORTME Some linkers may need a different reload flag.
+reload_flag='-r'
+echo "$ac_t$reload_flag" 1>&6
+test -n "$reload_flag" && reload_flag=" $reload_flag"
+
+# PORTME Fill in your ld.so characteristics
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+file_magic_cmd=
+file_magic_test_file=
+deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [regex]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given egrep regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
+case "$host_os" in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}.so$major'
+ ;;
+
+aix4*)
+ version_type=linux
+ # AIX has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ # We preserve .a as extension for shared libraries though AIX4.2
+ # and later linker supports .so
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a'
+ shlibpath_var=LIBPATH
+ deplibs_check_method=pass_all
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}.so'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ deplibs_check_method=pass_all
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+bsdi4*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ file_magic_cmd=/usr/bin/file
+ file_magic_test_file=/shlib/libc.so
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ export_dynamic_flag_spec=-rdynamic
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw*)
+ version_type=windows
+ need_version=no
+ need_lib_prefix=no
+ if test "$with_gcc" = yes; then
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a'
+ else
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
+ fi
+ dynamic_linker='Win32 ld.exe'
+ deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ file_magic_cmd='${OBJDUMP} -f'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd*)
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case "$version_type" in
+ freebsd-elf*)
+ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
+ file_magic_cmd=/usr/bin/file
+ file_magic_test_file=`echo /usr/lib/libc.so*`
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ deplibs_check_method=unknown
+ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case "$host_os" in
+ freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ *) # from 3.2 on
+ shlibpath_overrides_runpath=no
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ dynamic_linker="$host_os dld.sl"
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
+ soname_spec='${libname}${release}.sl$major'
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ case "$host_os" in
+ hpux10.20*)
+ # TODO: Does this work for hpux-11 too?
+ deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+ file_magic_cmd=/usr/bin/file
+ file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+irix5* | irix6*)
+ version_type=irix
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}.so.$major'
+ library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so'
+ case "$host_os" in
+ irix5*)
+ libsuff= shlibsuff=
+ # this will be overridden with pass_all, but let us keep it just in case
+ deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+ ;;
+ *)
+ case "$LD" in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ file_magic_cmd=/usr/bin/file
+ file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+ deplibs_check_method='pass_all'
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux-gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ deplibs_check_method=pass_all
+
+ if test -f /lib/ld.so.1; then
+ dynamic_linker='GNU ld.so'
+ else
+ # Only the GNU ld.so supports shared libraries on MkLinux.
+ case "$host_cpu" in
+ powerpc*) dynamic_linker=no ;;
+ *) dynamic_linker='Linux ld.so' ;;
+ esac
+ fi
+ ;;
+
+netbsd*)
+ version_type=sunos
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
+ soname_spec='${libname}${release}.so$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+openbsd*)
+ version_type=sunos
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ need_version=no
+ fi
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+os2*)
+ libname_spec='$name'
+ need_lib_prefix=no
+ library_names_spec='$libname.dll $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_version=no
+ soname_spec='${libname}${release}.so'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ # this will be overridden with pass_all, but let us keep it just in case
+ deplibs_check_method='file_magic COFF format alpha shared library'
+ file_magic_cmd=/usr/bin/file
+ file_magic_test_file=/shlib/libc.so
+ deplibs_check_method='pass_all'
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rhapsody*)
+ version_type=sunos
+ library_names_spec='${libname}.so'
+ soname_spec='${libname}.so'
+ shlibpath_var=DYLD_LIBRARY_PATH
+ deplibs_check_method=pass_all
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}.so$major'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib"
+ file_magic_cmd=/usr/bin/file
+ file_magic_test_file=/lib/libc.so
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case "$host_vendor" in
+ sequent)
+ file_magic_cmd='/bin/file'
+ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ ncr)
+ deplibs_check_method='pass_all'
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ file_magic_cmd=/usr/bin/file
+ file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ esac
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
+ soname_spec='$libname.so.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+echo "$ac_t$dynamic_linker" 1>&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+# Report the final consequences.
+echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6
+
+# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in
+# configure.in, otherwise build static only libraries.
+case "$host_os" in
+cygwin* | mingw* | os2*)
+ if test x$can_build_shared = xyes; then
+ test x$enable_win32_dll = xno && can_build_shared=no
+ echo "checking if package supports dlls... $can_build_shared" 1>&6
+ fi
+;;
+esac
+
+if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then
+ case "$deplibs_check_method" in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ egrep "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+fi
+
+echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+aix4*)
+ test "$enable_shared" = yes && enable_static=no
+ ;;
+esac
+
+echo "$ac_t$enable_shared" 1>&6
+
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+
+echo "checking whether to build static libraries... $enable_static" 1>&6
+
+if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+echo $ac_n "checking for objdir... $ac_c" 1>&6
+rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+echo "$ac_t$objdir" 1>&6
+
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then
+ lt_cv_dlopen=no lt_cv_dlopen_libs=
+echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
+echo "$progname:2248: checking for dlopen in -ldl" >&5
+ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-ldl $LIBS"
+cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dlopen""... $ac_c" 1>&6
+echo "$progname:2288: checking for dlopen" >&5
+if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+dlopen();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo $progname:2318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_dlopen=yes"
+else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_dlopen=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="dlopen"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
+echo "$progname:2335: checking for dld_link in -ldld" >&5
+ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-ldld $LIBS"
+cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for shl_load""... $ac_c" 1>&6
+echo "$progname:2375: checking for shl_load" >&5
+if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+shl_load();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo $progname:2405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_shl_load=yes"
+else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_shl_load=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="shl_load"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
+echo "$progname:2423: checking for shl_load in -ldld" >&5
+ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-ldld $LIBS"
+cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+fi
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ fi
+
+ case "$lt_cv_dlopen" in
+ dlopen)
+for ac_hdr in dlfcn.h; do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "$progname:2488: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <
+int fnord = 0;
+EOF
+ac_try="$ac_compile >/dev/null 2>conftest.out"
+{ (eval echo $progname:2498: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ if test "x$ac_cv_header_dlfcn_h" = xyes; then
+ CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+ fi
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
+echo "$progname:2526: checking whether a program can dlopen itself" >&5
+if test "${lt_cv_dlopen_self+set}" = set; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ lt_cv_dlopen_self=cross
+ else
+ cat > conftest.c <
+#endif
+
+#include
+
+#ifdef RTLD_GLOBAL
+# define LTDL_GLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LTDL_GLOBAL DL_GLOBAL
+# else
+# define LTDL_GLOBAL 0
+# endif
+#endif
+
+/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LTDL_LAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LTDL_LAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LTDL_LAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LTDL_LAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LTDL_LAZY_OR_NOW DL_NOW
+# else
+# define LTDL_LAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+fnord() { int i=42;}
+main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
+ if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
+ if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
+
+EOF
+if { (eval echo $progname:2580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+ lt_cv_dlopen_self=yes
+else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ lt_cv_dlopen_self=no
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$lt_cv_dlopen_self" 1>&6
+
+ if test "$lt_cv_dlopen_self" = yes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
+echo "$progname:2599: checking whether a statically linked program can dlopen itself" >&5
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ lt_cv_dlopen_self_static=cross
+ else
+ cat > conftest.c <
+#endif
+
+#include
+
+#ifdef RTLD_GLOBAL
+# define LTDL_GLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LTDL_GLOBAL DL_GLOBAL
+# else
+# define LTDL_GLOBAL 0
+# endif
+#endif
+
+/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LTDL_LAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LTDL_LAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LTDL_LAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LTDL_LAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LTDL_LAZY_OR_NOW DL_NOW
+# else
+# define LTDL_LAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+fnord() { int i=42;}
+main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
+ if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
+ if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
+
+EOF
+if { (eval echo $progname:2653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+ lt_cv_dlopen_self_static=yes
+else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ lt_cv_dlopen_self_static=no
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
+fi
+ ;;
+ esac
+
+ case "$lt_cv_dlopen_self" in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case "$lt_cv_dlopen_self_static" in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+# Copy echo and quote the copy, instead of the original, because it is
+# used later.
+ltecho="$echo"
+if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+ ltecho="$CONFIG_SHELL \$0 --fallback-echo"
+fi
+LTSHELL="$SHELL"
+
+LTCONFIG_VERSION="$VERSION"
+
+# Only quote variables if we're using ltmain.sh.
+case "$ltmain" in
+*.sh)
+ # Now quote all the things that may contain metacharacters.
+ for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \
+ old_LD old_LDFLAGS old_LIBS \
+ old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \
+ AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \
+ reload_flag reload_cmds wl \
+ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
+ thread_safe_flag_spec whole_archive_flag_spec libname_spec \
+ library_names_spec soname_spec \
+ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
+ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \
+ file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \
+ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
+ hardcode_libdir_flag_spec hardcode_libdir_separator \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
+
+ case "$var" in
+ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case "$ltecho" in
+ *'\$0 --fallback-echo"')
+ ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+ trap "$rm \"$ofile\"; exit 1" 1 2 15
+ echo "creating $ofile"
+ $rm "$ofile"
+ cat < "$ofile"
+#! $SHELL
+
+# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
+#
+# Copyright (C) 1996-1999 Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit , 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="sed -e s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+### BEGIN LIBTOOL CONFIG
+EOF
+ cfgfile="$ofile"
+ ;;
+
+*)
+ # Double-quote the variables that need it (for aesthetics).
+ for var in old_CC old_CFLAGS old_CPPFLAGS \
+ old_LD old_LDFLAGS old_LIBS \
+ old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do
+ eval "$var=\\\"\$var\\\""
+ done
+
+ # Just create a config file.
+ cfgfile="$ofile.cfg"
+ trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+ echo "creating $cfgfile"
+ $rm "$cfgfile"
+ cat < "$cfgfile"
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+EOF
+ ;;
+esac
+
+cat <> "$cfgfile"
+# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\
+# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\
+# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\
+# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\
+# $0$ltconfig_args
+#
+# Compiler and other test output produced by $progname, useful for
+# debugging $progname, is in ./config.log if it exists.
+
+# The version of $progname that generated this script.
+LTCONFIG_VERSION=$LTCONFIG_VERSION
+
+# Shell to use when invoking shell scripts.
+SHELL=$LTSHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$ltecho
+
+# The archiver.
+AR=$AR
+
+# The default C compiler.
+CC=$CC
+
+# The linker used to build libraries.
+LD=$LD
+
+# Whether we need hard or soft links.
+LN_S=$LN_S
+
+# A BSD-compatible nm program.
+NM=$NM
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$reload_flag
+reload_cmds=$reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$wl
+
+# Object file suffix (normally "o").
+objext="$objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$pic_flag
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$compiler_c_o
+
+# Can we write directly to a .lo ?
+compiler_o_lo=$compiler_o_lo
+
+# Must we lock files when doing compilation ?
+need_locks=$need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$link_static_flag
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$no_builtin_flag
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$thread_safe_flag_spec
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$RANLIB
+old_archive_cmds=$old_archive_cmds
+old_postinstall_cmds=$old_postinstall_cmds
+old_postuninstall_cmds=$old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$old_archive_from_new_cmds
+
+# Commands used to build and install a shared archive.
+archive_cmds=$archive_cmds
+archive_expsym_cmds=$archive_expsym_cmds
+postinstall_cmds=$postinstall_cmds
+postuninstall_cmds=$postuninstall_cmds
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$allow_undefined_flag
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$no_undefined_flag
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$global_symbol_to_cdecl
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$hardcode_libdir_separator
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$include_expsyms
+
+EOF
+
+case "$ltmain" in
+*.sh)
+ echo '### END LIBTOOL CONFIG' >> "$ofile"
+ echo >> "$ofile"
+ case "$host_os" in
+ aix3*)
+ cat <<\EOF >> "$ofile"
+
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+EOF
+ ;;
+ esac
+
+ # Append the ltmain.sh script.
+ sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+
+ chmod +x "$ofile"
+ ;;
+
+*)
+ # Compile the libtool program.
+ echo "FIXME: would compile $ltmain"
+ ;;
+esac
+
+test -n "$cache_file" || exit 0
+
+# AC_CACHE_SAVE
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+exit 0
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
diff --git a/salome_adm/unix/config_files/ltmain.sh b/salome_adm/unix/config_files/ltmain.sh
new file mode 100644
index 000000000..251394b4d
--- /dev/null
+++ b/salome_adm/unix/config_files/ltmain.sh
@@ -0,0 +1,4028 @@
+# ltmain.sh - Provide generalized library-building support services.
+# NOTE: Changing this file will not affect anything until you rerun ltconfig.
+#
+# Copyright (C) 1996-1999 Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit , 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Check that we have a working $echo.
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell, and then maybe $echo will work.
+ exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <&2
+ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+ exit 1
+fi
+
+if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+ echo "$modename: not configured to build any kind of library" 1>&2
+ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+ exit 1
+fi
+
+# Global variables.
+mode=$default_mode
+nonopt=
+prev=
+prevopt=
+run=
+show="$echo"
+show_help=
+execute_dlfiles=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+
+# Parse our command line options once, thoroughly.
+while test $# -gt 0
+do
+ arg="$1"
+ shift
+
+ case "$arg" in
+ -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case "$prev" in
+ execute_dlfiles)
+ eval "$prev=\"\$$prev \$arg\""
+ ;;
+ *)
+ eval "$prev=\$arg"
+ ;;
+ esac
+
+ prev=
+ prevopt=
+ continue
+ fi
+
+ # Have we seen a non-optional argument yet?
+ case "$arg" in
+ --help)
+ show_help=yes
+ ;;
+
+ --version)
+ echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
+ exit 0
+ ;;
+
+ --config)
+ sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
+ exit 0
+ ;;
+
+ --debug)
+ echo "$progname: enabling shell trace mode"
+ set -x
+ ;;
+
+ --dry-run | -n)
+ run=:
+ ;;
+
+ --features)
+ echo "host: $host"
+ if test "$build_libtool_libs" = yes; then
+ echo "enable shared libraries"
+ else
+ echo "disable shared libraries"
+ fi
+ if test "$build_old_libs" = yes; then
+ echo "enable static libraries"
+ else
+ echo "disable static libraries"
+ fi
+ exit 0
+ ;;
+
+ --finish) mode="finish" ;;
+
+ --mode) prevopt="--mode" prev=mode ;;
+ --mode=*) mode="$optarg" ;;
+
+ --quiet | --silent)
+ show=:
+ ;;
+
+ -dlopen)
+ prevopt="-dlopen"
+ prev=execute_dlfiles
+ ;;
+
+ -*)
+ $echo "$modename: unrecognized option \`$arg'" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ ;;
+
+ *)
+ nonopt="$arg"
+ break
+ ;;
+ esac
+done
+
+if test -n "$prevopt"; then
+ $echo "$modename: option \`$prevopt' requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+fi
+
+if test -z "$show_help"; then
+
+ # Infer the operation mode.
+ if test -z "$mode"; then
+ case "$nonopt" in
+ *cc | *++ | gcc* | *-gcc*)
+ mode=link
+ for arg
+ do
+ case "$arg" in
+ -c)
+ mode=compile
+ break
+ ;;
+ esac
+ done
+ ;;
+ *db | *dbx | *strace | *truss)
+ mode=execute
+ ;;
+ *install*|cp|mv)
+ mode=install
+ ;;
+ *rm)
+ mode=uninstall
+ ;;
+ *)
+ # If we have no mode, but dlfiles were specified, then do execute mode.
+ test -n "$execute_dlfiles" && mode=execute
+
+ # Just use the default operation mode.
+ if test -z "$mode"; then
+ if test -n "$nonopt"; then
+ $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+ else
+ $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+ fi
+ fi
+ ;;
+ esac
+ fi
+
+ # Only execute mode is allowed to have -dlopen flags.
+ if test -n "$execute_dlfiles" && test "$mode" != execute; then
+ $echo "$modename: unrecognized option \`-dlopen'" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ # Change the help message to a mode-specific one.
+ generic_help="$help"
+ help="Try \`$modename --help --mode=$mode' for more information."
+
+ # These modes are in order of execution frequency so that they run quickly.
+ case "$mode" in
+ # libtool compile mode
+ compile)
+ modename="$modename: compile"
+ # Get the compilation command and the source file.
+ base_compile=
+ lastarg=
+ srcfile="$nonopt"
+ suppress_output=
+
+ user_target=no
+ for arg
+ do
+ # Accept any command-line options.
+ case "$arg" in
+ -o)
+ if test "$user_target" != "no"; then
+ $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+ exit 1
+ fi
+ user_target=next
+ ;;
+
+ -static)
+ build_old_libs=yes
+ continue
+ ;;
+ esac
+
+ case "$user_target" in
+ next)
+ # The next one is the -o target name
+ user_target=yes
+ continue
+ ;;
+ yes)
+ # We got the output file
+ user_target=set
+ libobj="$arg"
+ continue
+ ;;
+ esac
+
+ # Accept the current argument as the source file.
+ lastarg="$srcfile"
+ srcfile="$arg"
+
+ # Aesthetically quote the previous argument.
+
+ # Backslashify any backslashes, double quotes, and dollar signs.
+ # These are the only characters that are still specially
+ # interpreted inside of double-quoted scrings.
+ lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
+
+ # Double-quote args containing other shell metacharacters.
+ # Many Bourne shells cannot handle close brackets correctly in scan
+ # sets, so we specify it separately.
+ case "$lastarg" in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+ lastarg="\"$lastarg\""
+ ;;
+ esac
+
+ # Add the previous argument to base_compile.
+ if test -z "$base_compile"; then
+ base_compile="$lastarg"
+ else
+ base_compile="$base_compile $lastarg"
+ fi
+ done
+
+ case "$user_target" in
+ set)
+ ;;
+ no)
+ # Get the name of the library object.
+ libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+ ;;
+ *)
+ $echo "$modename: you must specify a target with \`-o'" 1>&2
+ exit 1
+ ;;
+ esac
+
+ # Recognize several different file suffixes.
+ # If the user specifies -o file.o, it is replaced with file.lo
+ xform='[cCFSfmso]'
+ case "$libobj" in
+ *.ada) xform=ada ;;
+ *.adb) xform=adb ;;
+ *.ads) xform=ads ;;
+ *.asm) xform=asm ;;
+ *.c++) xform=c++ ;;
+ *.cc) xform=cc ;;
+ *.cpp) xform=cpp ;;
+ *.cxx) xform=cxx ;;
+ *.f90) xform=f90 ;;
+ *.for) xform=for ;;
+ esac
+
+ libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
+
+ case "$libobj" in
+ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
+ *)
+ $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
+ exit 1
+ ;;
+ esac
+
+ if test -z "$base_compile"; then
+ $echo "$modename: you must specify a compilation command" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ # Delete any leftover library objects.
+ if test "$build_old_libs" = yes; then
+ removelist="$obj $libobj"
+ else
+ removelist="$libobj"
+ fi
+
+ $run $rm $removelist
+ trap "$run $rm $removelist; exit 1" 1 2 15
+
+ # Calculate the filename of the output object if compiler does
+ # not support -o with -c
+ if test "$compiler_c_o" = no; then
+ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
+ lockfile="$output_obj.lock"
+ removelist="$removelist $output_obj $lockfile"
+ trap "$run $rm $removelist; exit 1" 1 2 15
+ else
+ need_locks=no
+ lockfile=
+ fi
+
+ # Lock this critical section if it is needed
+ # We use this script file to make the link, it avoids creating a new file
+ if test "$need_locks" = yes; then
+ until ln "$0" "$lockfile" 2>/dev/null; do
+ $show "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ elif test "$need_locks" = warn; then
+ if test -f "$lockfile"; then
+ echo "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit 1
+ fi
+ echo $srcfile > "$lockfile"
+ fi
+
+ if test -n "$fix_srcfile_path"; then
+ eval srcfile=\"$fix_srcfile_path\"
+ fi
+
+ # Only build a PIC object if we are building libtool libraries.
+ if test "$build_libtool_libs" = yes; then
+ # Without this assignment, base_compile gets emptied.
+ fbsd_hideous_sh_bug=$base_compile
+
+ # All platforms use -DPIC, to notify preprocessed assembler code.
+ command="$base_compile $srcfile $pic_flag -DPIC"
+ if test "$build_old_libs" = yes; then
+ lo_libobj="$libobj"
+ dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$dir" = "X$libobj"; then
+ dir="$objdir"
+ else
+ dir="$dir/$objdir"
+ fi
+ libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
+
+ if test -d "$dir"; then
+ $show "$rm $libobj"
+ $run $rm $libobj
+ else
+ $show "$mkdir $dir"
+ $run $mkdir $dir
+ status=$?
+ if test $status -ne 0 && test ! -d $dir; then
+ exit $status
+ fi
+ fi
+ fi
+ if test "$compiler_o_lo" = yes; then
+ output_obj="$libobj"
+ command="$command -o $output_obj"
+ elif test "$compiler_c_o" = yes; then
+ output_obj="$obj"
+ command="$command -o $output_obj"
+ fi
+
+ $run $rm "$output_obj"
+ $show "$command"
+ if $run eval "$command"; then :
+ else
+ test -n "$output_obj" && $run $rm $removelist
+ exit 1
+ fi
+
+ if test "$need_locks" = warn &&
+ test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
+ echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit 1
+ fi
+
+ # Just move the object if needed, then go on to compile the next one
+ if test x"$output_obj" != x"$libobj"; then
+ $show "$mv $output_obj $libobj"
+ if $run $mv $output_obj $libobj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # If we have no pic_flag, then copy the object into place and finish.
+ if test -z "$pic_flag" && test "$build_old_libs" = yes; then
+ # Rename the .lo from within objdir to obj
+ if test -f $obj; then
+ $show $rm $obj
+ $run $rm $obj
+ fi
+
+ $show "$mv $libobj $obj"
+ if $run $mv $libobj $obj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+
+ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$obj"; then
+ xdir="."
+ else
+ xdir="$xdir"
+ fi
+ baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
+ libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
+ # Now arrange that obj and lo_libobj become the same file
+ $show "(cd $xdir && $LN_S $baseobj $libobj)"
+ if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
+ exit 0
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # Allow error messages only from the first compilation.
+ suppress_output=' >/dev/null 2>&1'
+ fi
+
+ # Only build a position-dependent object if we build old libraries.
+ if test "$build_old_libs" = yes; then
+ command="$base_compile $srcfile"
+ if test "$compiler_c_o" = yes; then
+ command="$command -o $obj"
+ output_obj="$obj"
+ fi
+
+ # Suppress compiler output if we already did a PIC compilation.
+ command="$command$suppress_output"
+ $run $rm "$output_obj"
+ $show "$command"
+ if $run eval "$command"; then :
+ else
+ $run $rm $removelist
+ exit 1
+ fi
+
+ if test "$need_locks" = warn &&
+ test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
+ echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit 1
+ fi
+
+ # Just move the object if needed
+ if test x"$output_obj" != x"$obj"; then
+ $show "$mv $output_obj $obj"
+ if $run $mv $output_obj $obj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # Create an invalid libtool object if no PIC, so that we do not
+ # accidentally link it into a program.
+ if test "$build_libtool_libs" != yes; then
+ $show "echo timestamp > $libobj"
+ $run eval "echo timestamp > \$libobj" || exit $?
+ else
+ # Move the .lo from within objdir
+ $show "$mv $libobj $lo_libobj"
+ if $run $mv $libobj $lo_libobj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+ fi
+
+ # Unlock the critical section if it was locked
+ if test "$need_locks" != no; then
+ $rm "$lockfile"
+ fi
+
+ exit 0
+ ;;
+
+ # libtool link mode
+ link)
+ modename="$modename: link"
+ case "$host" in
+ *-*-cygwin* | *-*-mingw* | *-*-os2*)
+ # It is impossible to link a dll without this setting, and
+ # we shouldn't force the makefile maintainer to figure out
+ # which system we are compiling for in order to pass an extra
+ # flag for every libtool invokation.
+ # allow_undefined=no
+
+ # FIXME: Unfortunately, there are problems with the above when trying
+ # to make a dll which has undefined symbols, in which case not
+ # even a static library is built. For now, we need to specify
+ # -no-undefined on the libtool link line when we can be certain
+ # that all symbols are satisfied, otherwise we get a static library.
+ allow_undefined=yes
+
+ # This is a source program that is used to create dlls on Windows
+ # Don't remove nor modify the starting and closing comments
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include
+# #undef WIN32_LEAN_AND_MEAN
+# #include
+#
+# #ifndef __CYGWIN__
+# # ifdef __CYGWIN32__
+# # define __CYGWIN__ __CYGWIN32__
+# # endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+# __hDllInstance_base = hInst;
+# return TRUE;
+# }
+# /* ltdll.c ends here */
+ # This is a source program that is used to create import libraries
+ # on Windows for dlls which lack them. Don't remove nor modify the
+ # starting and closing comments
+# /* impgen.c starts here */
+# /* Copyright (C) 1999 Free Software Foundation, Inc.
+#
+# This file is part of GNU libtool.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# */
+#
+# #include /* for printf() */
+# #include /* for open(), lseek(), read() */
+# #include /* for O_RDONLY, O_BINARY */
+# #include /* for strdup() */
+#
+# static unsigned int
+# pe_get16 (fd, offset)
+# int fd;
+# int offset;
+# {
+# unsigned char b[2];
+# lseek (fd, offset, SEEK_SET);
+# read (fd, b, 2);
+# return b[0] + (b[1]<<8);
+# }
+#
+# static unsigned int
+# pe_get32 (fd, offset)
+# int fd;
+# int offset;
+# {
+# unsigned char b[4];
+# lseek (fd, offset, SEEK_SET);
+# read (fd, b, 4);
+# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+# }
+#
+# static unsigned int
+# pe_as32 (ptr)
+# void *ptr;
+# {
+# unsigned char *b = ptr;
+# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+# }
+#
+# int
+# main (argc, argv)
+# int argc;
+# char *argv[];
+# {
+# int dll;
+# unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
+# unsigned long export_rva, export_size, nsections, secptr, expptr;
+# unsigned long name_rvas, nexp;
+# unsigned char *expdata, *erva;
+# char *filename, *dll_name;
+#
+# filename = argv[1];
+#
+# dll = open(filename, O_RDONLY|O_BINARY);
+# if (!dll)
+# return 1;
+#
+# dll_name = filename;
+#
+# for (i=0; filename[i]; i++)
+# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
+# dll_name = filename + i +1;
+#
+# pe_header_offset = pe_get32 (dll, 0x3c);
+# opthdr_ofs = pe_header_offset + 4 + 20;
+# num_entries = pe_get32 (dll, opthdr_ofs + 92);
+#
+# if (num_entries < 1) /* no exports */
+# return 1;
+#
+# export_rva = pe_get32 (dll, opthdr_ofs + 96);
+# export_size = pe_get32 (dll, opthdr_ofs + 100);
+# nsections = pe_get16 (dll, pe_header_offset + 4 +2);
+# secptr = (pe_header_offset + 4 + 20 +
+# pe_get16 (dll, pe_header_offset + 4 + 16));
+#
+# expptr = 0;
+# for (i = 0; i < nsections; i++)
+# {
+# char sname[8];
+# unsigned long secptr1 = secptr + 40 * i;
+# unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
+# unsigned long vsize = pe_get32 (dll, secptr1 + 16);
+# unsigned long fptr = pe_get32 (dll, secptr1 + 20);
+# lseek(dll, secptr1, SEEK_SET);
+# read(dll, sname, 8);
+# if (vaddr <= export_rva && vaddr+vsize > export_rva)
+# {
+# expptr = fptr + (export_rva - vaddr);
+# if (export_rva + export_size > vaddr + vsize)
+# export_size = vsize - (export_rva - vaddr);
+# break;
+# }
+# }
+#
+# expdata = (unsigned char*)malloc(export_size);
+# lseek (dll, expptr, SEEK_SET);
+# read (dll, expdata, export_size);
+# erva = expdata - export_rva;
+#
+# nexp = pe_as32 (expdata+24);
+# name_rvas = pe_as32 (expdata+32);
+#
+# printf ("EXPORTS\n");
+# for (i = 0; i&2
+ fi
+ if test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ else
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ fi
+ build_libtool_libs=no
+ build_old_libs=yes
+ prefer_static_libs=yes
+ break
+ ;;
+ esac
+ done
+
+ # See if our shared archives depend on static archives.
+ test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+ # Go through the arguments, transforming them on the way.
+ while test $# -gt 0; do
+ arg="$1"
+ shift
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case "$prev" in
+ output)
+ compile_command="$compile_command @OUTPUT@"
+ finalize_command="$finalize_command @OUTPUT@"
+ ;;
+ esac
+
+ case "$prev" in
+ dlfiles|dlprefiles)
+ if test "$preload" = no; then
+ # Add the symbol object into the linking commands.
+ compile_command="$compile_command @SYMFILE@"
+ finalize_command="$finalize_command @SYMFILE@"
+ preload=yes
+ fi
+ case "$arg" in
+ *.la | *.lo) ;; # We handle these cases below.
+ force)
+ if test "$dlself" = no; then
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ self)
+ if test "$prev" = dlprefiles; then
+ dlself=yes
+ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+ dlself=yes
+ else
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ *)
+ if test "$prev" = dlfiles; then
+ dlfiles="$dlfiles $arg"
+ else
+ dlprefiles="$dlprefiles $arg"
+ fi
+ prev=
+ ;;
+ esac
+ ;;
+ expsyms)
+ export_symbols="$arg"
+ if test ! -f "$arg"; then
+ $echo "$modename: symbol file \`$arg' does not exist"
+ exit 1
+ fi
+ prev=
+ continue
+ ;;
+ expsyms_regex)
+ export_symbols_regex="$arg"
+ prev=
+ continue
+ ;;
+ release)
+ release="-$arg"
+ prev=
+ continue
+ ;;
+ rpath | xrpath)
+ # We need an absolute path.
+ case "$arg" in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+ exit 1
+ ;;
+ esac
+ if test "$prev" = rpath; then
+ case "$rpath " in
+ *" $arg "*) ;;
+ *) rpath="$rpath $arg" ;;
+ esac
+ else
+ case "$xrpath " in
+ *" $arg "*) ;;
+ *) xrpath="$xrpath $arg" ;;
+ esac
+ fi
+ prev=
+ continue
+ ;;
+ *)
+ eval "$prev=\"\$arg\""
+ prev=
+ continue
+ ;;
+ esac
+ fi
+
+ prevarg="$arg"
+
+ case "$arg" in
+ -all-static)
+ if test -n "$link_static_flag"; then
+ compile_command="$compile_command $link_static_flag"
+ finalize_command="$finalize_command $link_static_flag"
+ fi
+ continue
+ ;;
+
+ -allow-undefined)
+ # FIXME: remove this flag sometime in the future.
+ $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
+ continue
+ ;;
+
+ -avoid-version)
+ avoid_version=yes
+ continue
+ ;;
+
+ -dlopen)
+ prev=dlfiles
+ continue
+ ;;
+
+ -dlpreopen)
+ prev=dlprefiles
+ continue
+ ;;
+
+ -export-dynamic)
+ export_dynamic=yes
+ continue
+ ;;
+
+ -export-symbols | -export-symbols-regex)
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ $echo "$modename: not more than one -exported-symbols argument allowed"
+ exit 1
+ fi
+ if test "X$arg" = "X-export-symbols"; then
+ prev=expsyms
+ else
+ prev=expsyms_regex
+ fi
+ continue
+ ;;
+
+ -L*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
+ # We need an absolute path.
+ case "$dir" in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+ $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
+ absdir="$dir"
+ fi
+ dir="$absdir"
+ ;;
+ esac
+ case " $deplibs " in
+ *" $arg "*) ;;
+ *) deplibs="$deplibs $arg";;
+ esac
+ case " $lib_search_path " in
+ *" $dir "*) ;;
+ *) lib_search_path="$lib_search_path $dir";;
+ esac
+ case "$host" in
+ *-*-cygwin* | *-*-mingw* | *-*-os2*)
+ dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
+ case ":$dllsearchpath:" in
+ ::) dllsearchpath="$dllsearchdir";;
+ *":$dllsearchdir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
+ esac
+ ;;
+ esac
+ ;;
+
+ -l*)
+ if test "$arg" = "-lc"; then
+ case "$host" in
+ *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
+ # These systems don't actually have c library (as such)
+ continue
+ ;;
+ esac
+ elif test "$arg" = "-lm"; then
+ case "$host" in
+ *-*-cygwin* | *-*-beos*)
+ # These systems don't actually have math library (as such)
+ continue
+ ;;
+ esac
+ fi
+ deplibs="$deplibs $arg"
+ ;;
+
+ -module)
+ module=yes
+ continue
+ ;;
+
+ -no-undefined)
+ allow_undefined=no
+ continue
+ ;;
+
+ -o) prev=output ;;
+
+ -release)
+ prev=release
+ continue
+ ;;
+
+ -rpath)
+ prev=rpath
+ continue
+ ;;
+
+ -R)
+ prev=xrpath
+ continue
+ ;;
+
+ -R*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
+ # We need an absolute path.
+ case "$dir" in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+ exit 1
+ ;;
+ esac
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) xrpath="$xrpath $dir" ;;
+ esac
+ continue
+ ;;
+
+ -static)
+ # If we have no pic_flag, then this is the same as -all-static.
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ compile_command="$compile_command $link_static_flag"
+ finalize_command="$finalize_command $link_static_flag"
+ fi
+ continue
+ ;;
+
+ -thread-safe)
+ thread_safe=yes
+ continue
+ ;;
+
+ -version-info)
+ prev=vinfo
+ continue
+ ;;
+
+ # Some other compiler flag.
+ -* | +*)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case "$arg" in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+ arg="\"$arg\""
+ ;;
+ esac
+ ;;
+
+ *.o | *.obj | *.a | *.lib)
+ # A standard object.
+ objs="$objs $arg"
+ ;;
+
+ *.lo)
+ # A library object.
+ if test "$prev" = dlfiles; then
+ dlfiles="$dlfiles $arg"
+ if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+ dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
+ prev=
+ fi
+ libobjs="$libobjs $arg"
+ ;;
+
+ *.la)
+ # A libtool-controlled library.
+
+ dlname=
+ libdir=
+ library_names=
+ old_library=
+
+ # Check to see that this really is a libtool archive.
+ if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
+ exit 1
+ fi
+
+ # If the library was installed with an old release of libtool,
+ # it will not redefine variable installed.
+ installed=yes
+
+ # Read the .la file
+ # If there is no directory component, then add one.
+ case "$arg" in
+ */* | *\\*) . $arg ;;
+ *) . ./$arg ;;
+ esac
+
+ # Get the name of the library we link against.
+ linklib=
+ for l in $old_library $library_names; do
+ linklib="$l"
+ done
+
+ if test -z "$linklib"; then
+ $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
+ exit 1
+ fi
+
+ # Find the relevant object directory and library name.
+ name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
+
+ if test "X$installed" = Xyes; then
+ dir="$libdir"
+ else
+ dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$dir" = "X$arg"; then
+ dir="$objdir"
+ else
+ dir="$dir/$objdir"
+ fi
+ fi
+
+ if test -n "$dependency_libs"; then
+ # Extract -R and -L from dependency_libs
+ temp_deplibs=
+ for deplib in $dependency_libs; do
+ case "$deplib" in
+ -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+ case " $rpath $xrpath " in
+ *" $temp_xrpath "*) ;;
+ *) xrpath="$xrpath $temp_xrpath";;
+ esac;;
+ -L*) case "$compile_command $temp_deplibs " in
+ *" $deplib "*) ;;
+ *) temp_deplibs="$temp_deplibs $deplib";;
+ esac
+ temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+ case " $lib_search_path " in
+ *" $temp_dir "*) ;;
+ *) lib_search_path="$lib_search_path $temp_dir";;
+ esac
+ ;;
+ *) temp_deplibs="$temp_deplibs $deplib";;
+ esac
+ done
+ dependency_libs="$temp_deplibs"
+ fi
+
+ if test -z "$libdir"; then
+ # It is a libtool convenience library, so add in its objects.
+ convenience="$convenience $dir/$old_library"
+ old_convenience="$old_convenience $dir/$old_library"
+ deplibs="$deplibs$dependency_libs"
+ compile_command="$compile_command $dir/$old_library$dependency_libs"
+ finalize_command="$finalize_command $dir/$old_library$dependency_libs"
+ continue
+ fi
+
+ # This library was specified with -dlopen.
+ if test "$prev" = dlfiles; then
+ dlfiles="$dlfiles $arg"
+ if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
+ # If there is no dlname, no dlopen support or we're linking statically,
+ # we need to preload.
+ prev=dlprefiles
+ else
+ # We should not create a dependency on this library, but we
+ # may need any libraries it requires.
+ compile_command="$compile_command$dependency_libs"
+ finalize_command="$finalize_command$dependency_libs"
+ prev=
+ continue
+ fi
+ fi
+
+ # The library was specified with -dlpreopen.
+ if test "$prev" = dlprefiles; then
+ # Prefer using a static library (so that no silly _DYNAMIC symbols
+ # are required to link).
+ if test -n "$old_library"; then
+ dlprefiles="$dlprefiles $dir/$old_library"
+ else
+ dlprefiles="$dlprefiles $dir/$linklib"
+ fi
+ prev=
+ fi
+
+ if test -n "$library_names" &&
+ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+ link_against_libtool_libs="$link_against_libtool_libs $arg"
+ if test -n "$shlibpath_var"; then
+ # Make sure the rpath contains only unique directories.
+ case "$temp_rpath " in
+ *" $dir "*) ;;
+ *) temp_rpath="$temp_rpath $dir" ;;
+ esac
+ fi
+
+ # We need an absolute path.
+ case "$dir" in
+ [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+ $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
+ absdir="$dir"
+ fi
+ ;;
+ esac
+
+ # This is the magic to use -rpath.
+ # Skip directories that are in the system default run-time
+ # search path, unless they have been requested with -R.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) compile_rpath="$compile_rpath $absdir"
+ esac
+ ;;
+ esac
+
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir"
+ esac
+ ;;
+ esac
+
+ lib_linked=yes
+ case "$hardcode_action" in
+ immediate | unsupported)
+ if test "$hardcode_direct" = no; then
+ compile_command="$compile_command $dir/$linklib"
+ deplibs="$deplibs $dir/$linklib"
+ case "$host" in
+ *-*-cygwin* | *-*-mingw* | *-*-os2*)
+ dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
+ if test -n "$dllsearchpath"; then
+ dllsearchpath="$dllsearchpath:$dllsearchdir"
+ else
+ dllsearchpath="$dllsearchdir"
+ fi
+ ;;
+ esac
+ elif test "$hardcode_minus_L" = no; then
+ case "$host" in
+ *-*-sunos*)
+ compile_shlibpath="$compile_shlibpath$dir:"
+ ;;
+ esac
+ case "$compile_command " in
+ *" -L$dir "*) ;;
+ *) compile_command="$compile_command -L$dir";;
+ esac
+ compile_command="$compile_command -l$name"
+ deplibs="$deplibs -L$dir -l$name"
+ elif test "$hardcode_shlibpath_var" = no; then
+ case ":$compile_shlibpath:" in
+ *":$dir:"*) ;;
+ *) compile_shlibpath="$compile_shlibpath$dir:";;
+ esac
+ compile_command="$compile_command -l$name"
+ deplibs="$deplibs -l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+
+ relink)
+ if test "$hardcode_direct" = yes; then
+ compile_command="$compile_command $absdir/$linklib"
+ deplibs="$deplibs $absdir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ case "$compile_command " in
+ *" -L$absdir "*) ;;
+ *) compile_command="$compile_command -L$absdir";;
+ esac
+ compile_command="$compile_command -l$name"
+ deplibs="$deplibs -L$absdir -l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ case ":$compile_shlibpath:" in
+ *":$absdir:"*) ;;
+ *) compile_shlibpath="$compile_shlibpath$absdir:";;
+ esac
+ compile_command="$compile_command -l$name"
+ deplibs="$deplibs -l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+
+ *)
+ lib_linked=no
+ ;;
+ esac
+
+ if test "$lib_linked" != yes; then
+ $echo "$modename: configuration error: unsupported hardcode properties"
+ exit 1
+ fi
+
+ # Finalize command for both is simple: just hardcode it.
+ if test "$hardcode_direct" = yes; then
+ finalize_command="$finalize_command $libdir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ case "$finalize_command " in
+ *" -L$libdir "*) ;;
+ *) finalize_command="$finalize_command -L$libdir";;
+ esac
+ finalize_command="$finalize_command -l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ case ":$finalize_shlibpath:" in
+ *":$libdir:"*) ;;
+ *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
+ esac
+ finalize_command="$finalize_command -l$name"
+ else
+ # We cannot seem to hardcode it, guess we'll fake it.
+ case "$finalize_command " in
+ *" -L$dir "*) ;;
+ *) finalize_command="$finalize_command -L$libdir";;
+ esac
+ finalize_command="$finalize_command -l$name"
+ fi
+ else
+ # Transform directly to old archives if we don't build new libraries.
+ if test -n "$pic_flag" && test -z "$old_library"; then
+ $echo "$modename: cannot find static library for \`$arg'" 1>&2
+ exit 1
+ fi
+
+ # Here we assume that one of hardcode_direct or hardcode_minus_L
+ # is not unsupported. This is valid on all known static and
+ # shared platforms.
+ if test "$hardcode_direct" != unsupported; then
+ test -n "$old_library" && linklib="$old_library"
+ compile_command="$compile_command $dir/$linklib"
+ finalize_command="$finalize_command $dir/$linklib"
+ else
+ case "$compile_command " in
+ *" -L$dir "*) ;;
+ *) compile_command="$compile_command -L$dir";;
+ esac
+ compile_command="$compile_command -l$name"
+ case "$finalize_command " in
+ *" -L$dir "*) ;;
+ *) finalize_command="$finalize_command -L$dir";;
+ esac
+ finalize_command="$finalize_command -l$name"
+ fi
+ fi
+
+ # Add in any libraries that this one depends upon.
+ compile_command="$compile_command$dependency_libs"
+ finalize_command="$finalize_command$dependency_libs"
+ continue
+ ;;
+
+ # Some other compiler argument.
+ *)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case "$arg" in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+ arg="\"$arg\""
+ ;;
+ esac
+ ;;
+ esac
+
+ # Now actually substitute the argument into the commands.
+ if test -n "$arg"; then
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ fi
+ done
+
+ if test -n "$prev"; then
+ $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+ eval arg=\"$export_dynamic_flag_spec\"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ fi
+
+ oldlibs=
+ # calculate the name of the file, without its directory
+ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
+ libobjs_save="$libobjs"
+
+ case "$output" in
+ "")
+ $echo "$modename: you must specify an output file" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ ;;
+
+ *.a | *.lib)
+ if test -n "$link_against_libtool_libs"; then
+ $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
+ exit 1
+ fi
+
+ if test -n "$deplibs"; then
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
+ fi
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$rpath"; then
+ $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$xrpath"; then
+ $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
+ fi
+
+ # Now set the variables for building old libraries.
+ build_libtool_libs=no
+ oldlibs="$output"
+ ;;
+
+ *.la)
+ # Make sure we only generate libraries of the form `libNAME.la'.
+ case "$outputname" in
+ lib*)
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+ eval libname=\"$libname_spec\"
+ ;;
+ *)
+ if test "$module" = no; then
+ $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+ if test "$need_lib_prefix" != no; then
+ # Add the "lib" prefix for modules if required
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+ eval libname=\"$libname_spec\"
+ else
+ libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+ fi
+ ;;
+ esac
+
+ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$output_objdir" = "X$output"; then
+ output_objdir="$objdir"
+ else
+ output_objdir="$output_objdir/$objdir"
+ fi
+
+ if test -n "$objs"; then
+ $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
+ exit 1
+ fi
+
+ # How the heck are we supposed to write a wrapper for a shared library?
+ if test -n "$link_against_libtool_libs"; then
+ $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
+ exit 1
+ fi
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
+ fi
+
+ set dummy $rpath
+ if test $# -gt 2; then
+ $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+ fi
+ install_libdir="$2"
+
+ oldlibs=
+ if test -z "$rpath"; then
+ if test "$build_libtool_libs" = yes; then
+ # Building a libtool convenience library.
+ libext=al
+ oldlibs="$output_objdir/$libname.$libext $oldlibs"
+ build_libtool_libs=convenience
+ build_old_libs=yes
+ fi
+ dependency_libs="$deplibs"
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
+ fi
+ else
+
+ # Parse the version information argument.
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
+ set dummy $vinfo 0 0 0
+ IFS="$save_ifs"
+
+ if test -n "$8"; then
+ $echo "$modename: too many parameters to \`-version-info'" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ current="$2"
+ revision="$3"
+ age="$4"
+
+ # Check that each of the things are valid numbers.
+ case "$current" in
+ [0-9]*) ;;
+ *)
+ $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit 1
+ ;;
+ esac
+
+ case "$revision" in
+ [0-9]*) ;;
+ *)
+ $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit 1
+ ;;
+ esac
+
+ case "$age" in
+ [0-9]*) ;;
+ *)
+ $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit 1
+ ;;
+ esac
+
+ if test $age -gt $current; then
+ $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit 1
+ fi
+
+ # Calculate the version variables.
+ major=
+ versuffix=
+ verstring=
+ case "$version_type" in
+ none) ;;
+
+ irix)
+ major=`expr $current - $age + 1`
+ versuffix="$major.$revision"
+ verstring="sgi$major.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$revision
+ while test $loop != 0; do
+ iface=`expr $revision - $loop`
+ loop=`expr $loop - 1`
+ verstring="sgi$major.$iface:$verstring"
+ done
+ ;;
+
+ linux)
+ major=.`expr $current - $age`
+ versuffix="$major.$age.$revision"
+ ;;
+
+ osf)
+ major=`expr $current - $age`
+ versuffix=".$current.$age.$revision"
+ verstring="$current.$age.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$age
+ while test $loop != 0; do
+ iface=`expr $current - $loop`
+ loop=`expr $loop - 1`
+ verstring="$verstring:${iface}.0"
+ done
+
+ # Make executables depend on our current version.
+ verstring="$verstring:${current}.0"
+ ;;
+
+ sunos)
+ major=".$current"
+ versuffix=".$current.$revision"
+ ;;
+
+ freebsd-aout)
+ major=".$current"
+ versuffix=".$current.$revision";
+ ;;
+
+ freebsd-elf)
+ major=".$current"
+ versuffix=".$current";
+ ;;
+
+ windows)
+ # Like Linux, but with '-' rather than '.', since we only
+ # want one extension on Windows 95.
+ major=`expr $current - $age`
+ versuffix="-$major-$age-$revision"
+ ;;
+
+ *)
+ $echo "$modename: unknown library version type \`$version_type'" 1>&2
+ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+ exit 1
+ ;;
+ esac
+
+ # Clear the version info if we defaulted, and they specified a release.
+ if test -z "$vinfo" && test -n "$release"; then
+ major=
+ verstring="0.0"
+ if test "$need_version" = no; then
+ versuffix=
+ else
+ versuffix=".0.0"
+ fi
+ fi
+
+ # Remove version info from name if versioning should be avoided
+ if test "$avoid_version" = yes && test "$need_version" = no; then
+ major=
+ versuffix=
+ verstring=""
+ fi
+
+ # Check to see if the archive will have undefined symbols.
+ if test "$allow_undefined" = yes; then
+ if test "$allow_undefined_flag" = unsupported; then
+ $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+ build_libtool_libs=no
+ build_old_libs=yes
+ fi
+ else
+ # Don't allow undefined symbols.
+ allow_undefined_flag="$no_undefined_flag"
+ fi
+
+ dependency_libs="$deplibs"
+ case "$host" in
+ *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
+ # these systems don't actually have a c library (as such)!
+ ;;
+ *-*-rhapsody*)
+ # rhapsody is a little odd...
+ deplibs="$deplibs -framework System"
+ ;;
+ *)
+ # Add libc to deplibs on all other systems.
+ deplibs="$deplibs -lc"
+ ;;
+ esac
+ fi
+
+ # Create the output directory, or remove our outputs if we need to.
+ if test -d $output_objdir; then
+ $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
+ $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
+ else
+ $show "$mkdir $output_objdir"
+ $run $mkdir $output_objdir
+ status=$?
+ if test $status -ne 0 && test ! -d $output_objdir; then
+ exit $status
+ fi
+ fi
+
+ # Now set the variables for building old libraries.
+ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+ oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+ # Transform .lo files to .o files.
+ oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+ fi
+
+ if test "$build_libtool_libs" = yes; then
+ # Transform deplibs into only deplibs that can be linked in shared.
+ name_save=$name
+ libname_save=$libname
+ release_save=$release
+ versuffix_save=$versuffix
+ major_save=$major
+ # I'm not sure if I'm treating the release correctly. I think
+ # release should show up in the -l (ie -lgmp5) so we don't want to
+ # add it in twice. Is that correct?
+ release=""
+ versuffix=""
+ major=""
+ newdeplibs=
+ droppeddeps=no
+ case "$deplibs_check_method" in
+ pass_all)
+ # Don't check for shared/static. Everything works.
+ # This might be a little naive. We might want to check
+ # whether the library exists or not. But this is on
+ # osf3 & osf4 and I'm not really sure... Just
+ # implementing what was already the behaviour.
+ newdeplibs=$deplibs
+ ;;
+ test_compile)
+ # This code stresses the "libraries are programs" paradigm to its
+ # limits. Maybe even breaks it. We compile a program, linking it
+ # against the deplibs as a proxy for the library. Then we can check
+ # whether they linked in statically or dynamically with ldd.
+ $rm conftest.c
+ cat > conftest.c </dev/null`
+ for potent_lib in $potential_libs; do
+ # Follow soft links.
+ if ls -lLd "$potent_lib" 2>/dev/null \
+ | grep " -> " >/dev/null; then
+ continue
+ fi
+ # The statement above tries to avoid entering an
+ # endless loop below, in case of cyclic links.
+ # We might still enter an endless loop, since a link
+ # loop can be closed while we follow links,
+ # but so what?
+ potlib="$potent_lib"
+ while test -h "$potlib" 2>/dev/null; do
+ potliblink=`ls -ld $potlib | sed 's/.* -> //'`
+ case "$potliblink" in
+ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+ *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+ esac
+ done
+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
+ | sed 10q \
+ | egrep "$file_magic_regex" > /dev/null; then
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ echo
+ echo "*** Warning: This library needs some functionality provided by $a_deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have."
+ fi
+ else
+ # Add a -L argument.
+ newdeplibs="$newdeplibs $a_deplib"
+ fi
+ done # Gone through all deplibs.
+ ;;
+ none | unknown | *)
+ newdeplibs=""
+ if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
+ -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
+ grep . >/dev/null; then
+ echo
+ if test "X$deplibs_check_method" = "Xnone"; then
+ echo "*** Warning: inter-library dependencies are not supported in this platform."
+ else
+ echo "*** Warning: inter-library dependencies are not known to be supported."
+ fi
+ echo "*** All declared inter-library dependencies are being dropped."
+ droppeddeps=yes
+ fi
+ ;;
+ esac
+ versuffix=$versuffix_save
+ major=$major_save
+ release=$release_save
+ libname=$libname_save
+ name=$name_save
+
+ if test "$droppeddeps" = yes; then
+ if test "$module" = yes; then
+ echo
+ echo "*** Warning: libtool could not satisfy all declared inter-library"
+ echo "*** dependencies of module $libname. Therefore, libtool will create"
+ echo "*** a static module, that should work as long as the dlopening"
+ echo "*** application is linked with the -dlopen flag."
+ if test -z "$global_symbol_pipe"; then
+ echo
+ echo "*** However, this would only work if libtool was able to extract symbol"
+ echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ echo "*** not find such a program. So, this module is probably useless."
+ echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ else
+ echo "*** The inter-library dependencies that have been dropped here will be"
+ echo "*** automatically added whenever a program is linked with this library"
+ echo "*** or is declared to -dlopen it."
+ fi
+ fi
+ # Done checking deplibs!
+ deplibs=$newdeplibs
+ fi
+
+ # All the library-specific variables (install_libdir is set above).
+ library_names=
+ old_library=
+ dlname=
+
+ # Test again, we may have decided not to build it any more
+ if test "$build_libtool_libs" = yes; then
+ # Get the real and link names of the library.
+ eval library_names=\"$library_names_spec\"
+ set dummy $library_names
+ realname="$2"
+ shift; shift
+
+ if test -n "$soname_spec"; then
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+
+ lib="$output_objdir/$realname"
+ for link
+ do
+ linknames="$linknames $link"
+ done
+
+ # Ensure that we have .o objects for linkers which dislike .lo
+ # (e.g. aix) in case we are running --disable-static
+ for obj in $libobjs; do
+ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$obj"; then
+ xdir="."
+ else
+ xdir="$xdir"
+ fi
+ baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+ oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
+ if test ! -f $xdir/$oldobj; then
+ $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
+ $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
+ fi
+ done
+
+ # Use standard objects if they are pic
+ test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+ $show "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $run $rm $export_symbols
+ eval cmds=\"$export_symbols_cmds\"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ if test -n "$export_symbols_regex"; then
+ $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
+ $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ $show "$mv \"${export_symbols}T\" \"$export_symbols\""
+ $run eval '$mv "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+ fi
+
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
+ fi
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${outputname}x"
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "mkdir $gentop"
+ $run mkdir "$gentop"
+ status=$?
+ if test $status -ne 0 && test ! -d "$gentop"; then
+ exit $status
+ fi
+ generated="$generated $gentop"
+
+ for xlib in $convenience; do
+ # Extract the objects.
+ case "$xlib" in
+ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+ *) xabs=`pwd`"/$xlib" ;;
+ esac
+ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+ xdir="$gentop/$xlib"
+
+ $show "${rm}r $xdir"
+ $run ${rm}r "$xdir"
+ $show "mkdir $xdir"
+ $run mkdir "$xdir"
+ status=$?
+ if test $status -ne 0 && test ! -d "$xdir"; then
+ exit $status
+ fi
+ $show "(cd $xdir && $AR x $xabs)"
+ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+
+ libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
+ done
+ fi
+ fi
+
+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+ eval flag=\"$thread_safe_flag_spec\"
+ linkopts="$linkopts $flag"
+ fi
+
+ # Do each of the archive commands.
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ eval cmds=\"$archive_expsym_cmds\"
+ else
+ eval cmds=\"$archive_cmds\"
+ fi
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ # Create links to the real library.
+ for linkname in $linknames; do
+ if test "$realname" != "$linkname"; then
+ $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
+ $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
+ fi
+ done
+
+ # If -module or -export-dynamic was specified, set the dlname.
+ if test "$module" = yes || test "$export_dynamic" = yes; then
+ # On all known operating systems, these are identical.
+ dlname="$soname"
+ fi
+ fi
+ ;;
+
+ *.lo | *.o | *.obj)
+ if test -n "$link_against_libtool_libs"; then
+ $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
+ exit 1
+ fi
+
+ if test -n "$deplibs"; then
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
+ fi
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$rpath"; then
+ $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$xrpath"; then
+ $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
+ fi
+
+ case "$output" in
+ *.lo)
+ if test -n "$objs"; then
+ $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
+ exit 1
+ fi
+ libobj="$output"
+ obj=`$echo "X$output" | $Xsed -e "$lo2o"`
+ ;;
+ *)
+ libobj=
+ obj="$output"
+ ;;
+ esac
+
+ # Delete the old objects.
+ $run $rm $obj $libobj
+
+ # Objects from convenience libraries. This assumes
+ # single-version convenience libraries. Whenever we create
+ # different ones for PIC/non-PIC, this we'll have to duplicate
+ # the extraction.
+ reload_conv_objs=
+ gentop=
+ # reload_cmds runs $LD directly, so let us get rid of
+ # -Wl from whole_archive_flag_spec
+ wl=
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${obj}x"
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "mkdir $gentop"
+ $run mkdir "$gentop"
+ status=$?
+ if test $status -ne 0 && test ! -d "$gentop"; then
+ exit $status
+ fi
+ generated="$generated $gentop"
+
+ for xlib in $convenience; do
+ # Extract the objects.
+ case "$xlib" in
+ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+ *) xabs=`pwd`"/$xlib" ;;
+ esac
+ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+ xdir="$gentop/$xlib"
+
+ $show "${rm}r $xdir"
+ $run ${rm}r "$xdir"
+ $show "mkdir $xdir"
+ $run mkdir "$xdir"
+ status=$?
+ if test $status -ne 0 && test ! -d "$xdir"; then
+ exit $status
+ fi
+ $show "(cd $xdir && $AR x $xabs)"
+ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+
+ reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
+ done
+ fi
+ fi
+
+ # Create the old-style object.
+ reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
+
+ output="$obj"
+ eval cmds=\"$reload_cmds\"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ # Exit if we aren't doing a library object file.
+ if test -z "$libobj"; then
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ exit 0
+ fi
+
+ if test "$build_libtool_libs" != yes; then
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ # Create an invalid libtool object if no PIC, so that we don't
+ # accidentally link it into a program.
+ $show "echo timestamp > $libobj"
+ $run eval "echo timestamp > $libobj" || exit $?
+ exit 0
+ fi
+
+ if test -n "$pic_flag"; then
+ # Only do commands if we really have different PIC objects.
+ reload_objs="$libobjs $reload_conv_objs"
+ output="$libobj"
+ eval cmds=\"$reload_cmds\"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ else
+ # Just create a symlink.
+ $show $rm $libobj
+ $run $rm $libobj
+ xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$libobj"; then
+ xdir="."
+ else
+ xdir="$xdir"
+ fi
+ baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
+ oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
+ $show "(cd $xdir && $LN_S $oldobj $baseobj)"
+ $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
+ fi
+
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ exit 0
+ ;;
+
+ # Anything else should be a program.
+ *)
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
+ fi
+
+ if test "$preload" = yes; then
+ if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
+ test "$dlopen_self_static" = unknown; then
+ $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
+ fi
+ fi
+
+ if test -n "$rpath$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ for libdir in $rpath $xrpath; do
+ # This is the magic to use -rpath.
+ case "$compile_rpath " in
+ *" $libdir "*) ;;
+ *) compile_rpath="$compile_rpath $libdir" ;;
+ esac
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
+ esac
+ done
+ fi
+
+ # Now hardcode the library paths
+ rpath=
+ hardcode_libdirs=
+ for libdir in $compile_rpath $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath="$rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) perm_rpath="$perm_rpath $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ compile_rpath="$rpath"
+
+ rpath=
+ hardcode_libdirs=
+ for libdir in $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath="$rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$finalize_perm_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ finalize_rpath="$rpath"
+
+ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$output_objdir" = "X$output"; then
+ output_objdir="$objdir"
+ else
+ output_objdir="$output_objdir/$objdir"
+ fi
+
+ # Create the binary in the object directory, then wrap it.
+ if test ! -d $output_objdir; then
+ $show "$mkdir $output_objdir"
+ $run $mkdir $output_objdir
+ status=$?
+ if test $status -ne 0 && test ! -d $output_objdir; then
+ exit $status
+ fi
+ fi
+
+ if test -n "$libobjs" && test "$build_old_libs" = yes; then
+ # Transform all the library objects into standard objects.
+ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ fi
+
+ dlsyms=
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ if test -n "$NM" && test -n "$global_symbol_pipe"; then
+ dlsyms="${outputname}S.c"
+ else
+ $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
+ fi
+ fi
+
+ if test -n "$dlsyms"; then
+ case "$dlsyms" in
+ "") ;;
+ *.c)
+ # Discover the nlist of each of the dlfiles.
+ nlist="$output_objdir/${outputname}.nm"
+
+ $show "$rm $nlist ${nlist}S ${nlist}T"
+ $run $rm "$nlist" "${nlist}S" "${nlist}T"
+
+ # Parse the name list into a source file.
+ $show "creating $output_objdir/$dlsyms"
+
+ test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
+/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
+/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* Prevent the only kind of declaration conflicts we can make. */
+#define lt_preloaded_symbols some_other_symbol
+
+/* External symbol declarations for the compiler. */\
+"
+
+ if test "$dlself" = yes; then
+ $show "generating symbol list for \`$output'"
+
+ test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
+
+ # Add our own program objects to the symbol list.
+ progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ for arg in $progfiles; do
+ $show "extracting global C symbols from \`$arg'"
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -n "$exclude_expsyms"; then
+ $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ if test -n "$export_symbols_regex"; then
+ $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ export_symbols="$output_objdir/$output.exp"
+ $run $rm $export_symbols
+ $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+ else
+ $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
+ $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
+ $run eval 'mv "$nlist"T "$nlist"'
+ fi
+ fi
+
+ for arg in $dlprefiles; do
+ $show "extracting global C symbols from \`$arg'"
+ name=`echo "$arg" | sed -e 's%^.*/%%'`
+ $run eval 'echo ": $name " >> "$nlist"'
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -z "$run"; then
+ # Make sure we have at least an empty file.
+ test -f "$nlist" || : > "$nlist"
+
+ if test -n "$exclude_expsyms"; then
+ egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+ $mv "$nlist"T "$nlist"
+ fi
+
+ # Try sorting and uniquifying the output.
+ if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
+ :
+ else
+ grep -v "^: " < "$nlist" > "$nlist"S
+ fi
+
+ if test -f "$nlist"S; then
+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
+ else
+ echo '/* NONE */' >> "$output_objdir/$dlsyms"
+ fi
+
+ $echo >> "$output_objdir/$dlsyms" "\
+
+#undef lt_preloaded_symbols
+
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr_t address;
+}
+lt_preloaded_symbols[] =
+{\
+"
+
+ sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
+ -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
+ < "$nlist" >> "$output_objdir/$dlsyms"
+
+ $echo >> "$output_objdir/$dlsyms" "\
+ {0, (lt_ptr_t) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+ fi
+
+ pic_flag_for_symtable=
+ case "$host" in
+ # compiling the symbol table file with pic_flag works around
+ # a FreeBSD bug that causes programs to crash when -lm is
+ # linked before any other PIC object. But we must not use
+ # pic_flag when linking with -static. The problem exists in
+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+ case "$compile_command " in
+ *" -static "*) ;;
+ *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
+ esac;;
+ *-*-hpux*)
+ case "$compile_command " in
+ *" -static "*) ;;
+ *) pic_flag_for_symtable=" $pic_flag -DPIC";;
+ esac
+ esac
+
+ # Now compile the dynamic symbol file.
+ $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+ $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
+
+ # Clean up the generated files.
+ $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
+ $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
+
+ # Transform the symbol file into the correct name.
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+ ;;
+ *)
+ $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+ exit 1
+ ;;
+ esac
+ else
+ # We keep going just in case the user didn't refer to
+ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
+ # really was required.
+
+ # Nullify the symbol file.
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+ fi
+
+ if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
+ # Replace the output file specification.
+ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+ link_command="$compile_command$compile_rpath"
+
+ # We have no uninstalled library dependencies, so finalize right now.
+ $show "$link_command"
+ $run eval "$link_command"
+ status=$?
+
+ # Delete the generated files.
+ if test -n "$dlsyms"; then
+ $show "$rm $output_objdir/${outputname}S.${objext}"
+ $run $rm "$output_objdir/${outputname}S.${objext}"
+ fi
+
+ exit $status
+ fi
+
+ if test -n "$shlibpath_var"; then
+ # We should set the shlibpath_var
+ rpath=
+ for dir in $temp_rpath; do
+ case "$dir" in
+ [\\/]* | [A-Za-z]:[\\/]*)
+ # Absolute path.
+ rpath="$rpath$dir:"
+ ;;
+ *)
+ # Relative path: add a thisdir entry.
+ rpath="$rpath\$thisdir/$dir:"
+ ;;
+ esac
+ done
+ temp_rpath="$rpath"
+ fi
+
+ if test -n "$compile_shlibpath$finalize_shlibpath"; then
+ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+ fi
+ if test -n "$finalize_shlibpath"; then
+ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+ fi
+
+ compile_var=
+ finalize_var=
+ if test -n "$runpath_var"; then
+ if test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ if test -n "$finalize_perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $finalize_perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ fi
+
+ if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+ $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
+ $echo "$modename: \`$output' will be relinked during installation" 1>&2
+ else
+ if test "$fast_install" != no; then
+ link_command="$finalize_var$compile_command$finalize_rpath"
+ if test "$fast_install" = yes; then
+ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+ else
+ # fast_install is set to needless
+ relink_command=
+ fi
+ else
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+ fi
+ fi
+
+ # Replace the output file specification.
+ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+ # Delete the old output files.
+ $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+ $show "$link_command"
+ $run eval "$link_command" || exit $?
+
+ # Now create the wrapper script.
+ $show "creating $output"
+
+ # Quote the relink command for shipping.
+ if test -n "$relink_command"; then
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+ fi
+
+ # Quote $echo for shipping.
+ if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
+ case "$0" in
+ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
+ *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
+ esac
+ qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
+ else
+ qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
+ fi
+
+ # Only actually do things if our run command is non-null.
+ if test -z "$run"; then
+ # win32 will think the script is a binary if it has
+ # a .exe suffix, so we strip it off here.
+ case $output in
+ *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
+ esac
+ $rm $output
+ trap "$rm $output; exit 1" 1 2 15
+
+ $echo > $output "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+ # install mode needs the following variable:
+ link_against_libtool_libs='$link_against_libtool_libs'
+else
+ # When we are sourced in execute mode, \$file and \$echo are already set.
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ echo=\"$qecho\"
+ file=\"\$0\"
+ # Make sure echo works.
+ if test \"X\$1\" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+ elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
+ # Yippee, \$echo works!
+ :
+ else
+ # Restart under the correct shell, and then maybe \$echo will work.
+ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+ fi
+ fi\
+"
+ $echo >> $output "\
+
+ # Find the directory that this script lives in.
+ thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+ test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+ file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
+ while test -n \"\$file\"; do
+ destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+ # If there was a directory component, then change thisdir.
+ if test \"x\$destdir\" != \"x\$file\"; then
+ case \"\$destdir\" in
+ [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
+ *) thisdir=\"\$thisdir/\$destdir\" ;;
+ esac
+ fi
+
+ file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+ file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
+ done
+
+ # Try to get the absolute directory name.
+ absdir=\`cd \"\$thisdir\" && pwd\`
+ test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+ if test "$fast_install" = yes; then
+ echo >> $output "\
+ program=lt-'$outputname'
+ progdir=\"\$thisdir/$objdir\"
+
+ if test ! -f \"\$progdir/\$program\" || \\
+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+ file=\"\$\$-\$program\"
+
+ if test ! -d \"\$progdir\"; then
+ $mkdir \"\$progdir\"
+ else
+ $rm \"\$progdir/\$file\"
+ fi"
+
+ echo >> $output "\
+
+ # relink executable if necessary
+ if test -n \"\$relink_command\"; then
+ if (cd \"\$thisdir\" && eval \$relink_command); then :
+ else
+ $rm \"\$progdir/\$file\"
+ exit 1
+ fi
+ fi
+
+ $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+ { $rm \"\$progdir/\$program\";
+ $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+ $rm \"\$progdir/\$file\"
+ fi"
+ else
+ echo >> $output "\
+ program='$outputname'
+ progdir=\"\$thisdir/$objdir\"
+"
+ fi
+
+ echo >> $output "\
+
+ if test -f \"\$progdir/\$program\"; then"
+
+ # Export our shlibpath_var if we have one.
+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ $echo >> $output "\
+ # Add our own library path to $shlibpath_var
+ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+ # Some systems cannot cope with colon-terminated $shlibpath_var
+ # The second colon is a workaround for a bug in BeOS R4 sed
+ $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+ export $shlibpath_var
+"
+ fi
+
+ # fixup the dll searchpath if we need to.
+ if test -n "$dllsearchpath"; then
+ $echo >> $output "\
+ # Add the dll search path components to the executable PATH
+ PATH=$dllsearchpath:\$PATH
+"
+ fi
+
+ $echo >> $output "\
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ # Run the actual program with our arguments.
+"
+ case $host in
+ # win32 systems need to use the prog path for dll
+ # lookup to work
+ *-*-cygwin*)
+ $echo >> $output "\
+ exec \$progdir/\$program \${1+\"\$@\"}
+"
+ ;;
+
+ # Backslashes separate directories on plain windows
+ *-*-mingw | *-*-os2*)
+ $echo >> $output "\
+ exec \$progdir\\\\\$program \${1+\"\$@\"}
+"
+ ;;
+
+ *)
+ $echo >> $output "\
+ # Export the path to the program.
+ PATH=\"\$progdir:\$PATH\"
+ export PATH
+
+ exec \$program \${1+\"\$@\"}
+"
+ ;;
+ esac
+ $echo >> $output "\
+ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
+ exit 1
+ fi
+ else
+ # The program doesn't exist.
+ \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
+ \$echo \"This script is just a wrapper for \$program.\" 1>&2
+ echo \"See the $PACKAGE documentation for more information.\" 1>&2
+ exit 1
+ fi
+fi\
+"
+ chmod +x $output
+ fi
+ exit 0
+ ;;
+ esac
+
+ # See if we need to build an old-fashioned archive.
+ for oldlib in $oldlibs; do
+
+ if test "$build_libtool_libs" = convenience; then
+ oldobjs="$libobjs_save"
+ addlibs="$convenience"
+ build_libtool_libs=no
+ else
+ if test "$build_libtool_libs" = module; then
+ oldobjs="$libobjs_save"
+ build_libtool_libs=no
+ else
+ oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
+ fi
+ addlibs="$old_convenience"
+ fi
+
+ if test -n "$addlibs"; then
+ gentop="$output_objdir/${outputname}x"
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "mkdir $gentop"
+ $run mkdir "$gentop"
+ status=$?
+ if test $status -ne 0 && test ! -d "$gentop"; then
+ exit $status
+ fi
+ generated="$generated $gentop"
+
+ # Add in members from convenience archives.
+ for xlib in $addlibs; do
+ # Extract the objects.
+ case "$xlib" in
+ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+ *) xabs=`pwd`"/$xlib" ;;
+ esac
+ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+ xdir="$gentop/$xlib"
+
+ $show "${rm}r $xdir"
+ $run ${rm}r "$xdir"
+ $show "mkdir $xdir"
+ $run mkdir "$xdir"
+ status=$?
+ if test $status -ne 0 && test ! -d "$xdir"; then
+ exit $status
+ fi
+ $show "(cd $xdir && $AR x $xabs)"
+ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+
+ oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
+ done
+ fi
+
+ # Do each command in the archive commands.
+ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+ eval cmds=\"$old_archive_from_new_cmds\"
+ else
+ # Ensure that we have .o objects in place in case we decided
+ # not to build a shared library, and have fallen back to building
+ # static libs even though --disable-static was passed!
+ for oldobj in $oldobjs; do
+ if test ! -f $oldobj; then
+ xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$oldobj"; then
+ xdir="."
+ else
+ xdir="$xdir"
+ fi
+ baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
+ obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
+ $show "(cd $xdir && ${LN_S} $obj $baseobj)"
+ $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
+ fi
+ done
+
+ eval cmds=\"$old_archive_cmds\"
+ fi
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ done
+
+ if test -n "$generated"; then
+ $show "${rm}r$generated"
+ $run ${rm}r$generated
+ fi
+
+ # Now create the libtool archive.
+ case "$output" in
+ *.la)
+ old_library=
+ test "$build_old_libs" = yes && old_library="$libname.$libext"
+ $show "creating $output"
+
+ if test -n "$xrpath"; then
+ temp_xrpath=
+ for libdir in $xrpath; do
+ temp_xrpath="$temp_xrpath -R$libdir"
+ done
+ dependency_libs="$temp_xrpath $dependency_libs"
+ fi
+
+ # Only create the output if not a dry run.
+ if test -z "$run"; then
+ for installed in no yes; do
+ if test "$installed" = yes; then
+ if test -z "$install_libdir"; then
+ break
+ fi
+ output="$output_objdir/$outputname"i
+ fi
+ $rm $output
+ $echo > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$dlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'\
+"
+ done
+ fi
+
+ # Do a symbolic link so that the libtool archive can be found in
+ # LD_LIBRARY_PATH before the program is installed.
+ $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+ $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
+ ;;
+ esac
+ exit 0
+ ;;
+
+ # libtool install mode
+ install)
+ modename="$modename: install"
+
+ # There may be an optional sh(1) argument at the beginning of
+ # install_prog (especially on Windows NT).
+ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
+ # Aesthetically quote it.
+ arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
+ case "$arg" in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$arg "
+ arg="$1"
+ shift
+ else
+ install_prog=
+ arg="$nonopt"
+ fi
+
+ # The real first argument should be the name of the installation program.
+ # Aesthetically quote it.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case "$arg" in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$install_prog$arg"
+
+ # We need to accept at least all the BSD install flags.
+ dest=
+ files=
+ opts=
+ prev=
+ install_type=
+ isdir=no
+ stripme=
+ for arg
+ do
+ if test -n "$dest"; then
+ files="$files $dest"
+ dest="$arg"
+ continue
+ fi
+
+ case "$arg" in
+ -d) isdir=yes ;;
+ -f) prev="-f" ;;
+ -g) prev="-g" ;;
+ -m) prev="-m" ;;
+ -o) prev="-o" ;;
+ -s)
+ stripme=" -s"
+ continue
+ ;;
+ -*) ;;
+
+ *)
+ # If the previous option needed an argument, then skip it.
+ if test -n "$prev"; then
+ prev=
+ else
+ dest="$arg"
+ continue
+ fi
+ ;;
+ esac
+
+ # Aesthetically quote the argument.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case "$arg" in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$install_prog $arg"
+ done
+
+ if test -z "$install_prog"; then
+ $echo "$modename: you must specify an install program" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ if test -n "$prev"; then
+ $echo "$modename: the \`$prev' option requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ if test -z "$files"; then
+ if test -z "$dest"; then
+ $echo "$modename: no file or destination specified" 1>&2
+ else
+ $echo "$modename: you must specify a destination" 1>&2
+ fi
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ # Strip any trailing slash from the destination.
+ dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
+
+ # Check to see that the destination is a directory.
+ test -d "$dest" && isdir=yes
+ if test "$isdir" = yes; then
+ destdir="$dest"
+ destname=
+ else
+ destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$destdir" = "X$dest" && destdir=.
+ destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
+
+ # Not a directory, so check to see that there is only one file specified.
+ set dummy $files
+ if test $# -gt 2; then
+ $echo "$modename: \`$dest' is not a directory" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+ fi
+ case "$destdir" in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ for file in $files; do
+ case "$file" in
+ *.lo) ;;
+ *)
+ $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ staticlibs=
+ future_libdirs=
+ current_libdirs=
+ for file in $files; do
+
+ # Do each installation.
+ case "$file" in
+ *.a | *.lib)
+ # Do the static libraries later.
+ staticlibs="$staticlibs $file"
+ ;;
+
+ *.la)
+ # Check to see that this really is a libtool archive.
+ if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ library_names=
+ old_library=
+ # If there is no directory component, then add one.
+ case "$file" in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Add the libdir to current_libdirs if it is the destination.
+ if test "X$destdir" = "X$libdir"; then
+ case "$current_libdirs " in
+ *" $libdir "*) ;;
+ *) current_libdirs="$current_libdirs $libdir" ;;
+ esac
+ else
+ # Note the libdir as a future libdir.
+ case "$future_libdirs " in
+ *" $libdir "*) ;;
+ *) future_libdirs="$future_libdirs $libdir" ;;
+ esac
+ fi
+
+ dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
+ test "X$dir" = "X$file/" && dir=
+ dir="$dir$objdir"
+
+ # See the names of the shared library.
+ set dummy $library_names
+ if test -n "$2"; then
+ realname="$2"
+ shift
+ shift
+
+ # Install the shared library and build the symlinks.
+ $show "$install_prog $dir/$realname $destdir/$realname"
+ $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
+
+ if test $# -gt 0; then
+ # Delete the old symlinks, and create new ones.
+ for linkname
+ do
+ if test "$linkname" != "$realname"; then
+ $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+ $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+ fi
+ done
+ fi
+
+ # Do each command in the postinstall commands.
+ lib="$destdir/$realname"
+ eval cmds=\"$postinstall_cmds\"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ # Install the pseudo-library for information purposes.
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ instname="$dir/$name"i
+ $show "$install_prog $instname $destdir/$name"
+ $run eval "$install_prog $instname $destdir/$name" || exit $?
+
+ # Maybe install the static library, too.
+ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+ ;;
+
+ *.lo)
+ # Install (i.e. copy) a libtool object.
+
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ destfile="$destdir/$destfile"
+ fi
+
+ # Deduce the name of the destination old-style object file.
+ case "$destfile" in
+ *.lo)
+ staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
+ ;;
+ *.o | *.obj)
+ staticdest="$destfile"
+ destfile=
+ ;;
+ *)
+ $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ ;;
+ esac
+
+ # Install the libtool object if requested.
+ if test -n "$destfile"; then
+ $show "$install_prog $file $destfile"
+ $run eval "$install_prog $file $destfile" || exit $?
+ fi
+
+ # Install the old object if enabled.
+ if test "$build_old_libs" = yes; then
+ # Deduce the name of the old-style object file.
+ staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
+
+ $show "$install_prog $staticobj $staticdest"
+ $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+ fi
+ exit 0
+ ;;
+
+ *)
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ destfile="$destdir/$destfile"
+ fi
+
+ # Do a test to see if this is really a libtool program.
+ if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ link_against_libtool_libs=
+ relink_command=
+
+ # If there is no directory component, then add one.
+ case "$file" in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Check the variables that should have been set.
+ if test -z "$link_against_libtool_libs"; then
+ $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
+ exit 1
+ fi
+
+ finalize=yes
+ for lib in $link_against_libtool_libs; do
+ # Check to see that each library is installed.
+ libdir=
+ if test -f "$lib"; then
+ # If there is no directory component, then add one.
+ case "$lib" in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+ fi
+ libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
+ if test -n "$libdir" && test ! -f "$libfile"; then
+ $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+ finalize=no
+ fi
+ done
+
+ outputname=
+ if test "$fast_install" = no && test -n "$relink_command"; then
+ if test "$finalize" = yes && test -z "$run"; then
+ tmpdir="/tmp"
+ test -n "$TMPDIR" && tmpdir="$TMPDIR"
+ tmpdir=`mktemp -d $tmpdir/libtool-XXXXXX 2> /dev/null`
+ if test $? = 0 ; then :
+ else
+ tmpdir="$tmpdir/libtool-$$"
+ fi
+ if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
+ else
+ $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
+ continue
+ fi
+ outputname="$tmpdir/$file"
+ # Replace the output file specification.
+ relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+ $show "$relink_command"
+ if $run eval "$relink_command"; then :
+ else
+ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+ ${rm}r "$tmpdir"
+ continue
+ fi
+ file="$outputname"
+ else
+ $echo "$modename: warning: cannot relink \`$file'" 1>&2
+ fi
+ else
+ # Install the binary that we compiled earlier.
+ file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+ fi
+ fi
+
+ $show "$install_prog$stripme $file $destfile"
+ $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
+ test -n "$outputname" && ${rm}r "$tmpdir"
+ ;;
+ esac
+ done
+
+ for file in $staticlibs; do
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+
+ # Set up the ranlib parameters.
+ oldlib="$destdir/$name"
+
+ $show "$install_prog $file $oldlib"
+ $run eval "$install_prog \$file \$oldlib" || exit $?
+
+ # Do each command in the postinstall commands.
+ eval cmds=\"$old_postinstall_cmds\"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ done
+
+ if test -n "$future_libdirs"; then
+ $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
+ fi
+
+ if test -n "$current_libdirs"; then
+ # Maybe just do a dry run.
+ test -n "$run" && current_libdirs=" -n$current_libdirs"
+ exec $SHELL $0 --finish$current_libdirs
+ exit 1
+ fi
+
+ exit 0
+ ;;
+
+ # libtool finish mode
+ finish)
+ modename="$modename: finish"
+ libdirs="$nonopt"
+ admincmds=
+
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ for dir
+ do
+ libdirs="$libdirs $dir"
+ done
+
+ for libdir in $libdirs; do
+ if test -n "$finish_cmds"; then
+ # Do each command in the finish commands.
+ eval cmds=\"$finish_cmds\"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || admincmds="$admincmds
+ $cmd"
+ done
+ IFS="$save_ifs"
+ fi
+ if test -n "$finish_eval"; then
+ # Do the single finish_eval.
+ eval cmds=\"$finish_eval\"
+ $run eval "$cmds" || admincmds="$admincmds
+ $cmds"
+ fi
+ done
+ fi
+
+ # Exit here if they wanted silent mode.
+ test "$show" = : && exit 0
+
+ echo "----------------------------------------------------------------------"
+ echo "Libraries have been installed in:"
+ for libdir in $libdirs; do
+ echo " $libdir"
+ done
+ echo
+ echo "If you ever happen to want to link against installed libraries"
+ echo "in a given directory, LIBDIR, you must either use libtool, and"
+ echo "specify the full pathname of the library, or use \`-LLIBDIR'"
+ echo "flag during linking and do at least one of the following:"
+ if test -n "$shlibpath_var"; then
+ echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
+ echo " during execution"
+ fi
+ if test -n "$runpath_var"; then
+ echo " - add LIBDIR to the \`$runpath_var' environment variable"
+ echo " during linking"
+ fi
+ if test -n "$hardcode_libdir_flag_spec"; then
+ libdir=LIBDIR
+ eval flag=\"$hardcode_libdir_flag_spec\"
+
+ echo " - use the \`$flag' linker flag"
+ fi
+ if test -n "$admincmds"; then
+ echo " - have your system administrator run these commands:$admincmds"
+ fi
+ if test -f /etc/ld.so.conf; then
+ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+ fi
+ echo
+ echo "See any operating system documentation about shared libraries for"
+ echo "more information, such as the ld(1) and ld.so(8) manual pages."
+ echo "----------------------------------------------------------------------"
+ exit 0
+ ;;
+
+ # libtool execute mode
+ execute)
+ modename="$modename: execute"
+
+ # The first argument is the command name.
+ cmd="$nonopt"
+ if test -z "$cmd"; then
+ $echo "$modename: you must specify a COMMAND" 1>&2
+ $echo "$help"
+ exit 1
+ fi
+
+ # Handle -dlopen flags immediately.
+ for file in $execute_dlfiles; do
+ if test ! -f "$file"; then
+ $echo "$modename: \`$file' is not a file" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ dir=
+ case "$file" in
+ *.la)
+ # Check to see that this really is a libtool archive.
+ if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ # Read the libtool library.
+ dlname=
+ library_names=
+
+ # If there is no directory component, then add one.
+ case "$file" in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Skip this library if it cannot be dlopened.
+ if test -z "$dlname"; then
+ # Warn if it was a shared library.
+ test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
+ continue
+ fi
+
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$file" && dir=.
+
+ if test -f "$dir/$objdir/$dlname"; then
+ dir="$dir/$objdir"
+ else
+ $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+ exit 1
+ fi
+ ;;
+
+ *.lo)
+ # Just add the directory containing the .lo file.
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$file" && dir=.
+ ;;
+
+ *)
+ $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
+ continue
+ ;;
+ esac
+
+ # Get the absolute pathname.
+ absdir=`cd "$dir" && pwd`
+ test -n "$absdir" && dir="$absdir"
+
+ # Now add the directory to shlibpath_var.
+ if eval "test -z \"\$$shlibpath_var\""; then
+ eval "$shlibpath_var=\"\$dir\""
+ else
+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+ fi
+ done
+
+ # This variable tells wrapper scripts just to set shlibpath_var
+ # rather than running their programs.
+ libtool_execute_magic="$magic"
+
+ # Check if any of the arguments is a wrapper script.
+ args=
+ for file
+ do
+ case "$file" in
+ -*) ;;
+ *)
+ # Do a test to see if this is really a libtool program.
+ if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ # If there is no directory component, then add one.
+ case "$file" in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Transform arg to wrapped name.
+ file="$progdir/$program"
+ fi
+ ;;
+ esac
+ # Quote arguments (to preserve shell metacharacters).
+ file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
+ args="$args \"$file\""
+ done
+
+ if test -z "$run"; then
+ if test -n "$shlibpath_var"; then
+ # Export the shlibpath_var.
+ eval "export $shlibpath_var"
+ fi
+
+ # Restore saved enviroment variables
+ if test "${save_LC_ALL+set}" = set; then
+ LC_ALL="$save_LC_ALL"; export LC_ALL
+ fi
+ if test "${save_LANG+set}" = set; then
+ LANG="$save_LANG"; export LANG
+ fi
+
+ # Now actually exec the command.
+ eval "exec \$cmd$args"
+
+ $echo "$modename: cannot exec \$cmd$args"
+ exit 1
+ else
+ # Display what would be done.
+ if test -n "$shlibpath_var"; then
+ eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
+ $echo "export $shlibpath_var"
+ fi
+ $echo "$cmd$args"
+ exit 0
+ fi
+ ;;
+
+ # libtool uninstall mode
+ uninstall)
+ modename="$modename: uninstall"
+ rm="$nonopt"
+ files=
+
+ for arg
+ do
+ case "$arg" in
+ -*) rm="$rm $arg" ;;
+ *) files="$files $arg" ;;
+ esac
+ done
+
+ if test -z "$rm"; then
+ $echo "$modename: you must specify an RM program" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ for file in $files; do
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$file" && dir=.
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+
+ rmfiles="$file"
+
+ case "$name" in
+ *.la)
+ # Possibly a libtool archive, so verify it.
+ if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ . $dir/$name
+
+ # Delete the libtool libraries and symlinks.
+ for n in $library_names; do
+ rmfiles="$rmfiles $dir/$n"
+ done
+ test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
+
+ $show "$rm $rmfiles"
+ $run $rm $rmfiles
+
+ if test -n "$library_names"; then
+ # Do each command in the postuninstall commands.
+ eval cmds=\"$postuninstall_cmds\"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd"
+ done
+ IFS="$save_ifs"
+ fi
+
+ if test -n "$old_library"; then
+ # Do each command in the old_postuninstall commands.
+ eval cmds=\"$old_postuninstall_cmds\"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd"
+ done
+ IFS="$save_ifs"
+ fi
+
+ # FIXME: should reinstall the best remaining shared library.
+ fi
+ ;;
+
+ *.lo)
+ if test "$build_old_libs" = yes; then
+ oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
+ rmfiles="$rmfiles $dir/$oldobj"
+ fi
+ $show "$rm $rmfiles"
+ $run $rm $rmfiles
+ ;;
+
+ *)
+ $show "$rm $rmfiles"
+ $run $rm $rmfiles
+ ;;
+ esac
+ done
+ exit 0
+ ;;
+
+ "")
+ $echo "$modename: you must specify a MODE" 1>&2
+ $echo "$generic_help" 1>&2
+ exit 1
+ ;;
+ esac
+
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$generic_help" 1>&2
+ exit 1
+fi # test -z "$show_help"
+
+# We need to display help for each of the modes.
+case "$mode" in
+"") $echo \
+"Usage: $modename [OPTION]... [MODE-ARG]...
+
+Provide generalized library-building support services.
+
+ --config show all configuration variables
+ --debug enable verbose shell tracing
+-n, --dry-run display commands without modifying any files
+ --features display basic configuration information and exit
+ --finish same as \`--mode=finish'
+ --help display this help message and exit
+ --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
+ --quiet same as \`--silent'
+ --silent don't print informational messages
+ --version print version information
+
+MODE must be one of the following:
+
+ compile compile a source file into a libtool object
+ execute automatically set library path, then run a program
+ finish complete the installation of libtool libraries
+ install install libraries or executables
+ link create a library or an executable
+ uninstall remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
+a more detailed description of MODE."
+ exit 0
+ ;;
+
+compile)
+ $echo \
+"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
+ -static always build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+ ;;
+
+execute)
+ $echo \
+"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+ -dlopen FILE add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+ ;;
+
+finish)
+ $echo \
+"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges. Use
+the \`--dry-run' option if you just want to see what would be executed."
+ ;;
+
+install)
+ $echo \
+"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command. The first component should be
+either the \`install' or \`cp' program.
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+ ;;
+
+link)
+ $echo \
+"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+ -all-static do not do any dynamic linking at all
+ -avoid-version do not add a version suffix if possible
+ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
+ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
+ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+ -export-symbols SYMFILE
+ try to export only the symbols listed in SYMFILE
+ -export-symbols-regex REGEX
+ try to export only the symbols matching REGEX
+ -LLIBDIR search LIBDIR for required installed libraries
+ -lNAME OUTPUT-FILE requires the installed library libNAME
+ -module build a library that can dlopened
+ -no-undefined declare that a library does not refer to external symbols
+ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
+ -release RELEASE specify package release information
+ -rpath LIBDIR the created library will eventually be installed in LIBDIR
+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
+ -static do not do any dynamic linking of libtool libraries
+ -version-info CURRENT[:REVISION[:AGE]]
+ specify library version info [each variable defaults to 0]
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename. Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+ ;;
+
+uninstall)
+ $echo \
+"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+*)
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ ;;
+esac
+
+echo
+$echo "Try \`$modename --help' for more information about other modes."
+
+exit 0
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
diff --git a/salome_adm/unix/config_files/missing b/salome_adm/unix/config_files/missing
new file mode 100644
index 000000000..7789652e8
--- /dev/null
+++ b/salome_adm/unix/config_files/missing
@@ -0,0 +1,190 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+# Franc,ois Pinard , 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+fi
+
+case "$1" in
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+
+Supported PROGRAM values:
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ lex create \`lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing - GNU libit 0.0"
+ ;;
+
+ -*)
+ echo 1>&2 "$0: Unknown \`$1' option"
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+ ;;
+
+ aclocal)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`acinclude.m4' or \`configure.in'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`configure.in'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`acconfig.h' or \`configure.in'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case "$f" in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
+ You might want to install the \`Automake' and \`Perl' packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
+ ;;
+
+ bison|yacc)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
+ in order for those modifications to take effect. You can get
+ \`Bison' from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f y.tab.h ]; then
+ echo >y.tab.h
+ fi
+ if [ ! -f y.tab.c ]; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex|flex)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f lex.yy.c ]; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ makeinfo)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+ if test -z "$file"; then
+ file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+ fi
+ touch $file
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, and you do not seem to have it handy on your
+ system. You might have modified some files without having the
+ proper tools for further handling them. Check the \`README' file,
+ it often tells you about the needed prerequirements for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing \`$1' program."
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/salome_adm/unix/config_files/mkinstalldirs b/salome_adm/unix/config_files/mkinstalldirs
new file mode 100755
index 000000000..6b3b5fc5d
--- /dev/null
+++ b/salome_adm/unix/config_files/mkinstalldirs
@@ -0,0 +1,40 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman
+# Created: 1993-05-16
+# Public domain
+
+# $Id$
+
+errstatus=0
+
+for file
+do
+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ shift
+
+ pathcomp=
+ for d
+ do
+ pathcomp="$pathcomp$d"
+ case "$pathcomp" in
+ -* ) pathcomp=./$pathcomp ;;
+ esac
+
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp"
+
+ mkdir "$pathcomp" || lasterr=$?
+
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ fi
+ fi
+
+ pathcomp="$pathcomp/"
+ done
+done
+
+exit $errstatus
+
+# mkinstalldirs ends here
diff --git a/salome_adm/unix/config_files/production.m4 b/salome_adm/unix/config_files/production.m4
new file mode 100644
index 000000000..bca533f8d
--- /dev/null
+++ b/salome_adm/unix/config_files/production.m4
@@ -0,0 +1,77 @@
+dnl define macros :
+dnl AC_ENABLE_PRODUCTION AC_DISABLE_PRODUCTION
+dnl and
+dnl AC_ENABLE_DEBUG AC_DISABLE_DEBUG
+dnl
+dnl version $Id$
+dnl author Patrick GOLDBRONN
+dnl
+
+# AC_ENABLE_PRODUCTION
+AC_DEFUN(AC_ENABLE_PRODUCTION, [dnl
+define([AC_ENABLE_PRODUCTION_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(production,
+changequote(<<, >>)dnl
+<< --enable-production[=PKGS] build without debug information [default=>>AC_ENABLE_PRODUCTION_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_production=yes ;;
+no) enable_production=no ;;
+*)
+ enable_production=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_production=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_production=AC_ENABLE_PRODUCTION_DEFAULT)dnl
+
+if test "X$enable_production" = "Xyes"; then
+ CFLAGS="$CFLAGS -O"
+ CXXFLAGS="$CXXFLAGS -O"
+fi
+])
+
+# AC_DISABLE_PRODUCTION - set the default flag to --disable-production
+AC_DEFUN(AC_DISABLE_PRODUCTION, [AC_ENABLE_PRODUCTION(no)])
+
+# AC_ENABLE_DEBUG
+AC_DEFUN(AC_ENABLE_DEBUG, [dnl
+define([AC_ENABLE_DEBUG_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(debug,
+changequote(<<, >>)dnl
+<< --enable-debug[=PKGS] build without debug information [default=>>AC_ENABLE_DEBUG_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_debug=yes ;;
+no) enable_debug=no ;;
+*)
+ enable_debug=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_debug=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_debug=AC_ENABLE_DEBUG_DEFAULT)dnl
+
+if test "X$enable_debug" = "Xyes"; then
+ CFLAGS="$CFLAGS -g -D_DEBUG_ "
+ CXXFLAGS="$CXXFLAGS -g -D_DEBUG_ "
+fi
+])
+
+# AC_DISABLE_DEBUG - set the default flag to --disable-debug
+AC_DEFUN(AC_DISABLE_DEBUG, [AC_ENABLE_DEBUG(no)])
+
diff --git a/salome_adm/unix/config_files/pyembed.m4 b/salome_adm/unix/config_files/pyembed.m4
new file mode 100644
index 000000000..aa016668f
--- /dev/null
+++ b/salome_adm/unix/config_files/pyembed.m4
@@ -0,0 +1,90 @@
+dnl This macro defines the PYTHON_EMBED_{CFLAGS,LDFLAGS,LIBS} substitutions
+dnl that should be used when embedding the python interpreter into a program.
+dnl AM_INIT_PYTHON_EMBED
+AC_DEFUN(AM_INIT_PYTHON_EMBED,
+[AC_REQUIRE([AM_PATH_PYTHON])
+AC_REQUIRE([AM_INIT_PYEXEC_MOD])
+
+AC_MSG_CHECKING(for flags used to embed python interpreter)
+changequote(,)dnl
+py_makefile="`$PYTHON -c '
+import sys
+print \"%s/lib/python%s/config/Makefile\"%(sys.exec_prefix, sys.version[:3])'`"
+changequote([,])dnl
+if test ! -f "$py_makefile"; then
+ AC_MSG_ERROR([*** Couldn't find the python config makefile. Maybe you are
+*** missing the development portion of the python installation])
+fi
+
+changequote(,)dnl
+py_lib="`$PYTHON -c '
+import sys
+ver = sys.version[:3]
+pre = sys.exec_prefix
+print \"-L%s/lib/python%s/config\" % (pre, ver),
+if ver == \"1.4\":
+ print \"-lPython -lObjects -lParser\"
+else:
+ print \"-lpython\" + ver
+
+changequote([,])dnl
+
+py_ldflags=`sed -n -e 's/^LDFLAGS=\(.*\)/\1/p' $py_makefile`
+py_linkforshared=`sed -n -e 's/^LINKFORSHARED=\(.*\)/\1/p' $py_makefile`
+
+PYTHON_EMBED_LDFLAGS="$py_ldflags $py_linkforshared"
+
+py_localmodlibs=`sed -n -e 's/^LOCALMODLIBS=\(.*\)/\1/p' $py_makefile`
+py_basemodlibs=`sed -n -e 's/^BASEMODLIBS=\(.*\)/\1/p' $py_makefile`
+py_other_libs=`sed -n -e 's/^LIBS=\(.*\)/\1/p' $py_makefile`
+
+PYTHON_EMBED_LIBS="$py_lib $py_localmodlibs $py_basemodlibs $py_other_libs"
+
+PYTHON_EMBED_CFLAGS="$PYTHON_INCLUDES"
+
+AC_MSG_RESULT(done)
+
+AC_SUBST(PYTHON_EMBED_CFLAGS)
+AC_SUBST(PYTHON_EMBED_LDFLAGS)
+AC_SUBST(PYTHON_EMBED_LIBS)
+])
+
+dnl creates a config.c file, which holds the builtin module initialisation
+dnl table for python. The first argument should be the output filename.
+dnl The second argument gives the names of all the modules you want to build
+dnl into the executable.
+dnl AM_PYTHON_CREATE_CONFIG_C(CONFIG_C, MODULE ...)
+AC_DEFUN(AM_PYTHON_CREATE_CONFIG_C,
+[AC_REQUIRE([AM_INIT_PYTHON_EMBED])
+AC_MSG_CHECKING(for config.c.in)
+changequote(,)dnl
+py_config_in="`$PYTHON -c '
+import sys
+print \"%s/lib/python%s/config/config.c.in\"%(sys.exec_prefix, sys.version[:3])'`"
+changequote([,])dnl
+if test ! -f "$py_config_in"; then
+ AC_MSG_ERROR([*** Couldn't find the config.c.in file. Maybe you are
+*** missing the development portion of the python installation])
+fi
+
+py_cnf_decls=""
+py_cnf_inits=""
+py_nl='\
+'
+for mod in . $2; do
+ if test "$mod" != .; then
+ py_cnf_decls="${py_cnf_decls}extern void init$mod();$py_nl"
+ py_cnf_inits="${py_cnf_inits} {\"$mod\", init$mod},$py_nl"
+ fi
+done
+sed -e "
+ /MARKER 1/i$py_nl$py_cnf_decls
+ /MARKER 2/i$py_nl$py_cnf_inits
+" $py_config_in > $1
+AC_MSG_RESULT(created $1)
+])
+
+s page was automatically generated Contact Matt Wilson with any comments
+the LXR engine written by Arne or questions about LXR on gnome.org.
+rg Gleditsch and Per Kristian Do not contact Matt Wilson concerning
+rmshus. any software on this site.
diff --git a/salome_adm/unix/config_files/python.m4 b/salome_adm/unix/config_files/python.m4
new file mode 100644
index 000000000..ce4b99ff5
--- /dev/null
+++ b/salome_adm/unix/config_files/python.m4
@@ -0,0 +1,142 @@
+## ------------------------
+## Python file handling
+## From Andrew Dalke
+## Modified by Marc Tajchman (06/2001)
+## ------------------------
+
+dnl CHECK_PYTHON([module, classes])
+dnl
+dnl Adds support for distributing Python modules or classes.
+dnl Python library files distributed as a `module' are installed
+dnl under PYTHON_SITE_PACKAGE (eg, ./python1.5/site-package/package-name)
+dnl while those distributed as `classes' are installed under PYTHON_SITE
+dnl (eg, ./python1.5/site-packages). The default is to install as
+dnl a `module'.
+
+AC_DEFUN(CHECK_PYTHON,
+ [
+ AC_ARG_WITH(python,
+ [ --with-python=DIR root directory path of python installation ],
+ [PYTHON="$withval/bin/python"
+ AC_MSG_RESULT("select python distribution in $withval")
+ ], [
+ AC_PATH_PROG(PYTHON, python)
+ ])
+
+ AC_CHECKING([local Python configuration])
+ PYTHON_PREFIX=`echo $PYTHON | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
+ PYTHON_PREFIX=`echo $PYTHON_PREFIX | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
+ PYTHONHOME=$PYTHON_PREFIX
+
+ AC_SUBST(PYTHON_PREFIX)
+ AC_SUBST(PYTHONHOME)
+
+ changequote(<<, >>)dnl
+ PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"`
+ changequote([, ])dnl
+ AC_SUBST(PYTHON_VERSION)
+
+ PY_MAKEFILE=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/config/Makefile
+ if test ! -f "$PY_MAKEFILE"; then
+ AC_MSG_ERROR([*** Couldn't find ${PY_MAKEFILE}. Maybe you are
+*** missing the development portion of the python installation])
+ fi
+
+ AC_SUBST(PYTHON_INCLUDES)
+ AC_SUBST(PYTHON_LIBS)
+
+ PYTHON_INCLUDES=-I$PYTHON_PREFIX/include/python$PYTHON_VERSION
+ PYTHON_LIBS="-L${PYTHON_PREFIX}/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
+ PYTHON_LIB=$PYTHON_LIBS
+ PYTHON_LIBA=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a
+
+ dnl At times (like when building shared libraries) you may want
+ dnl to know which OS Python thinks this is.
+
+ AC_SUBST(PYTHON_PLATFORM)
+ PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"`
+
+ AC_SUBST(PYTHON_SITE)
+ AC_ARG_WITH(python-site,
+[ --with-python-site=DIR Use DIR for installing platform independent
+ Python site-packages],
+
+dnl modification : by default, we install python script in salome root tree
+
+dnl [PYTHON_SITE="$withval"
+dnl python_site_given=yes],
+dnl [PYTHON_SITE=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/site-packages
+dnl python_site_given=no])
+
+[PYTHON_SITE="$withval"
+python_site_given=yes],
+[PYTHON_SITE=$prefix"/lib/python"$PYTHON_VERSION/site-packages
+python_site_given=no])
+
+ AC_SUBST(PYTHON_SITE_PACKAGE)
+ PYTHON_SITE_PACKAGE=$PYTHON_SITE/$PACKAGE
+
+
+ dnl Get PYTHON_SITE from --with-python-site-exec or from
+ dnl --with-python-site or from running Python
+
+ AC_SUBST(PYTHON_SITE_EXEC)
+ AC_ARG_WITH(python-site-exec,
+[ --with-python-site-exec=DIR Use DIR for installing platform dependent
+ Python site-packages],
+[PYTHON_SITE_EXEC="$withval"],
+[if test "$python_site_given" = yes; then
+ PYTHON_SITE_EXEC=$PYTHON_SITE
+else
+ PYTHON_SITE_EXEC=$PYTHON_EXEC_PREFIX"/lib/python"$PYTHON_VERSION/site-packages
+fi])
+
+ dnl Set up the install directory
+ ifelse($1, classes,
+[PYTHON_SITE_INSTALL=$PYTHON_SITE],
+[PYTHON_SITE_INSTALL=$PYTHON_SITE_PACKAGE])
+ AC_SUBST(PYTHON_SITE_INSTALL)
+
+ dnl Also lets automake think PYTHON means something.
+
+ pythondir=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/
+ AC_SUBST(pythondir)
+
+ AC_MSG_CHECKING([if we need libdb])
+ PY_NEEDOPENDB=`nm $PYTHON_LIBA | grep dbopen | grep U`
+ if test "x$PY_NEEDOPENDB" != "x"; then
+ PYTHON_LIBS="$PYTHON_LIBS -ldb"
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
+
+ AC_MSG_CHECKING([if we need libdl])
+ PY_NEEDOPENDL=`nm $PYTHON_LIBA | grep dlopen | grep U`
+ if test "x$PY_NEEDOPENDL" != "x"; then
+ PYTHON_LIBS="$PYTHON_LIBS -ldl"
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
+
+ AC_MSG_CHECKING([if we need libutil])
+ PY_NEEDOPENPTY=`nm $PYTHON_LIBA | grep openpty | grep U`
+ if test "x$PY_NEEDOPENPTY" != "x"; then
+ PYTHON_LIBS="$PYTHON_LIBS -lutil"
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
+
+ AC_MSG_CHECKING([if we need tcltk])
+ PY_NEEDTCLTK=`nm $PYTHON_LIBA | grep Tcl_Init | grep U`
+ if test "x$PY_NEEDTCLTK" != "x"; then
+ PYTHON_LIBS="$PYTHON_LIBS -ltcl -ltk"
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
+
+ python_ok=yes
+ AC_MSG_RESULT(looks good)])
diff --git a/salome_adm/unix/depend.in b/salome_adm/unix/depend.in
new file mode 100644
index 000000000..4117d1440
--- /dev/null
+++ b/salome_adm/unix/depend.in
@@ -0,0 +1,83 @@
+## -*- makefile -*-
+
+## We keep a list of dependencies in `.depend' for each of the source
+## files on which it depends. When one of the source files is modified
+## we remove its record from .depend and regenerate its dependencies,
+## tacking them onto the end of .depend. By including the .depend file
+## into the makefile, we're telling make that the makefile depends on
+## the dependency list in the .depend file.
+##
+## This is as fast as the `.d' method described in the GNU make manual
+## for automatic dependencies, but has the added advantage that all
+## dependencies are stored in one place. The advantage over the
+## `makedepend' program is that only those files that are out of date
+## have dependency information rebuilt, and the Makefile is not
+## modified.
+##
+## This is also where tracing information is updated. The $(TRACE)
+## program is run on each source file to make sure that the H5TRACE()
+## macros are up to date. If they are then the file is not modified,
+## otherwise the file is changed and a backup is saved by appending a
+## tilde to the file name.
+##
+$(srcdir)/Dependencies: .depend
+ @if test "$(srcdir)" != "."; then \
+ echo '## This file is machine generated on GNU systems.' >$@; \
+ echo '## Only temporary changes may be made here.' >>$@; \
+ echo >>$@; \
+ perl -p $(top_srcdir)/bin/salome/distdep .depend >>$@; \
+ else \
+ echo 'Dependencies cannot be built when $$srcdir == $$builddir'; \
+ fi
+
+depend:.depend
+
+# we had Makefile target, because we want Makefile rebuild before include .depend
+.depend: $(LIB_DEP) $(TEST_SRC) $(BIN_DEP)
+ @touch .depend
+ @for dep in X $? ; do \
+ if [ $$dep != "X" ]; then \
+ if [ $$dep != "Makefile" ]; then \
+ case "$$dep" in \
+ *.c) \
+ echo Building dependencies for $$dep; \
+ obj=`basename $$dep .c`.lo; \
+ sed '\%^'"$$obj"':%,\%[^\\]$$%d' <$@ >$@- && mv $@- $@; \
+ $(CC) $(C_DEPEND_FLAG) $(CPPFLAGS) $$dep 2>/dev/null | \
+ sed 's% $(srcdir)/% $$(srcdir)/%g' | \
+ sed 's% $(top_srcdir)/% $$(top_srcdir)/%g' | \
+ sed 's% $(top_builddir)/% $$(top_builddir)/%g' | \
+ sed 's/\.o/.lo/' >>$@; \
+ ;; \
+ *.cc) \
+ echo Building dependencies for $$dep; \
+ obj=`basename $$dep .cc`.lo; \
+ sed '\%^'"$$obj"':%,\%[^\\]$$%d' <$@ >$@- && mv $@- $@; \
+ $(CXX) $(CXX_DEPEND_FLAG) $(CXXFLAGS) $(CPPFLAGS) $$dep 2>/dev/null | \
+ sed 's% $(srcdir)/% $$(srcdir)/%g' | \
+ sed 's% $(top_srcdir)/% $$(top_srcdir)/%g' | \
+ sed 's% $(top_builddir)/% $$(top_builddir)/%g' | \
+ sed 's/\.o/.lo/' >>$@; \
+ ;; \
+ *.cxx) \
+ echo Building dependencies for $$dep; \
+ obj=`basename $$dep .cxx`.lo; \
+ sed '\%^'"$$obj"':%,\%[^\\]$$%d' <$@ >$@- && mv $@- $@; \
+ $(CXX) $(CXX_DEPEND_FLAG) $(CXXFLAGS) $(CPPFLAGS) $$dep 2>/dev/null | \
+ sed 's% $(srcdir)/% $$(srcdir)/%g' | \
+ sed 's% $(top_srcdir)/% $$(top_srcdir)/%g' | \
+ sed 's% $(top_builddir)/% $$(top_builddir)/%g' | \
+ sed 's/\.o/.lo/' >>$@; \
+ ;; \
+ esac; \
+ fi; \
+ fi; \
+ done;
+
+
+-include .depend
+
+# idl depend
+-include $(top_builddir)/idl/.depidl
+
+
diff --git a/salome_adm/unix/envScript.in b/salome_adm/unix/envScript.in
new file mode 100644
index 000000000..1db824c1c
--- /dev/null
+++ b/salome_adm/unix/envScript.in
@@ -0,0 +1,20 @@
+
+DIR=`pwd`
+EXEC_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"`
+cd $EXEC_DIR/..
+SALOME_HOME_DIR=`pwd`
+cd $EXEC_DIR
+
+export SALOME_HOME_DIR
+export SALOME_SRC_DIR=@ROOT_SRCDIR@
+export ORB_HOME_DIR=@CORBA_ROOT@
+
+export LD_LIBRARY_PATH=${SALOME_HOME_DIR}/lib/salome:${LD_LIBRARY_PATH}
+
+# echo $SALOME_HOME_DIR = SALOME_HOME_DIR
+# echo $SALOME_SRC_DIR = SALOME_SRC_DIR
+
+PYVTK_PATH=@VTKPY_MODULES@
+export PYTHONPATH=${PYTHONPATH}:${SALOME_HOME_DIR}/idl:${SALOME_HOME_DIR}/bin/salome:${SALOME_HOME_DIR}/lib/salome:${PYVTK_PATH}:${EXEC_DIR}
+
+export MICORC=/dev/null
diff --git a/salome_adm/unix/make_commence.in b/salome_adm/unix/make_commence.in
new file mode 100644
index 000000000..eea295092
--- /dev/null
+++ b/salome_adm/unix/make_commence.in
@@ -0,0 +1,244 @@
+# common directories to put headerfiles
+inc_builddir=$(top_builddir)/include/salome
+
+@SET_MAKE@
+SHELL=/bin/sh
+
+# header missing
+
+HAVE_SSTREAM=@HAVE_SSTREAM@
+
+
+LIBS=@LIBS@
+LDFLAGS=@LDFLAGS@ -L$(top_builddir)/lib/salome -Xlinker -rpath-link -Xlinker $(top_builddir)/lib/salome
+# add libstdc++ to link c++ library with libtool !
+LDFLAGS+= -lstdc++
+
+CP=@CP@
+
+# CPP
+
+CPP=@CPP@
+CXXCPP=@CXXCPP@
+CPPFLAGS=@CPPFLAGS@ -I$(inc_builddir) -I$(srcdir) -I.
+
+# C
+
+CC = @CC@
+CFLAGS = @CFLAGS@
+C_DEPEND_FLAG = @C_DEPEND_FLAG@
+
+# C++
+
+CXX = @CXX@
+CXXFLAGS = @CXXFLAGS@
+CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@
+
+# JAVA
+
+JAVA_INCLUDES = @JAVA_INCLUDES@
+JAVA_LIBS = @JAVA_LIBS@
+JAVA_LDPATH = @JAVA_LDPATH@
+
+# PYTHON
+
+PYTHON = @PYTHON@
+PYTHONHOME = @PYTHONHOME@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_VERSION = @PYTHON_VERSION@
+PYTHON_SITE = @PYTHON_SITE@
+PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@
+
+# QT
+
+QT_ROOT = @QT_ROOT@
+QT_INCLUDES = @QT_INCLUDES@
+QT_MT_INCLUDES = @QT_INCLUDES@ -DQT_THREAD_SUPPORT
+QT_LIBS = @QT_LIBS@
+QT_MT_LIBS = @QT_MT_LIBS@
+
+MOC = @MOC@
+UIC = @UIC@
+
+
+#QWT
+
+QWT_INCLUDES=@QWT_INCLUDES@
+QWT_LIBS=@QWT_LIBS@
+
+# SIP
+SIP = @SIP@
+SIP_INCLUDES = @SIP_INCLUDES@
+SIP_LIBS = @SIP_LIBS@
+
+# PYQT
+PYQT_SIPS = @PYQT_SIPS@
+PYQT_LIBS = @PYQT_LIBS@
+
+# openGL
+OGL_INCLUDES=@OGL_INCLUDES@
+OGL_LIBS=@OGL_LIBS@
+
+# VTK
+VTK_INCLUDES=@VTK_INCLUDES@
+VTK_LIBS=@VTK_LIBS@
+
+# HDF5
+
+HDF5_INCLUDES=@HDF5_INCLUDES@
+HDF5_LIBS=@HDF5_LIBS@
+HDF5_MT_LIBS=@HDF5_MT_LIBS@
+
+# MED2
+
+MED2_INCLUDES=@MED2_INCLUDES@
+MED2_LIBS=@MED2_LIBS@
+MED2_MT_LIBS=@MED2_MT_LIBS@
+
+# OpenCasCade
+
+OCC_INCLUDES=@CAS_CPPFLAGS@
+OCC_CXXFLAGS=@CAS_CXXFLAGS@
+OCC_LIBS=@CAS_LDFLAGS@
+
+# MPICH
+
+MPICH_INCLUDES=@MPICH_INCLUDES@
+MPICH_LIBS=@MPICH_LIBS@
+
+# Swig C++ Python
+
+SWIG = @SWIG@
+SWIG_FLAGS = @SWIG_FLAGS@ -I$(inc_builddir) -I$(srcdir) -I.
+
+# OMNIORB
+
+OMNIORB_ROOT = @OMNIORB_ROOT@
+OMNIORB_INCLUDES = @OMNIORB_INCLUDES@
+OMNIORB_LIBS = @OMNIORB_LIBS@
+OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@
+
+OMNIORB_IDL = @OMNIORB_IDL@
+OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@
+OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ -I$(top_builddir)/idl
+
+OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@
+OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@
+OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@
+
+OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@
+OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@
+OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@
+
+# Default ORB
+
+CORBA_ROOT = @CORBA_ROOT@
+CORBA_INCLUDES = @CORBA_INCLUDES@
+CORBA_LIBS = @CORBA_LIBS@
+CORBA_CXXFLAGS = @CORBA_CXXFLAGS@
+
+IDLCXXFLAGS = @IDLCXXFLAGS@ -I$(top_builddir)/idl
+IDLPYFLAGS = @IDLPYFLAGS@
+
+IDL = @IDL@
+
+IDL_CLN_H = @IDL_CLN_H@
+IDL_CLN_CXX = @IDL_CLN_CXX@
+IDL_CLN_OBJ = @IDL_CLN_OBJ@
+
+IDL_SRV_H = @IDL_SRV_H@
+IDL_SRV_CXX = @IDL_SRV_CXX@
+IDL_SRV_OBJ = @IDL_SRV_OBJ@
+
+CPPFLAGS+= $(CORBA_INCLUDES)
+CXXFLAGS+= $(CORBA_CXXFLAGS)
+
+# add corba libs when link salome application !
+#LDFLAGS+= $(CORBA_LIBS)
+LIBS+=$(CORBA_LIBS)
+
+## Shared libraries
+LT_STATIC_EXEC=@LT_STATIC_EXEC@
+DYNAMIC_DIRS=@DYNAMIC_DIRS@
+LT_LIB=libtool
+LT=$(top_builddir)/libtool
+LT_COMPILE=$(LT) --mode=compile $(CC)
+LT_LINK_LIB=$(LT_LIB) --mode=link $(CC) -rpath $(libdir)
+LT_LINK_EXE=$(LT) --mode=link $(CC) $(LT_STATIC_EXEC) -dlopen self -rpath $(bindir) $(DYNAMIC_DIRS)
+LT_RUN=$(LT) --mode=execute
+LT_INSTALL_PROG=$(LT) --mode=install $(INSTALL_PROGRAM)
+LT_INSTALL_LIB=$(LT) --mode=install $(INSTALL_DATA)
+LT_UNINSTALL=$(LT) --mode=uninstall $(RM)
+
+INSTALL=@INSTALL@
+INSTALL_PROGRAM=@INSTALL_PROGRAM@
+INSTALL_DATA=@INSTALL_DATA@
+
+# create a symbolic link (or a copie ?)
+LN_S=@LN_S@
+
+## Installation points
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+bindir=@bindir@/salome
+libdir=@libdir@/salome
+# warning : if user give this path in configure we could have salome/salome :-(
+includedir=@includedir@/salome
+datadir=@datadir@/salome
+idldir=$(datadir)/idl/salome
+sharedpydir=@libdir@/python$(PYTHON_VERSION)/site-packages/salome/shared_modules
+
+docdir=$(datadir)/doc
+
+#
+# begin of package rules
+#
+
+.PHONY: all lib bin inc resources tests install uninstall dep depend depend_idl cleandep mostlyclean clean distclean
+
+.SUFFIXES: .cxx .cc .c .f .o .lo .idl .py .i .ui .po .qm
+
+all:
+ $(MAKE) inc
+ $(MAKE) depend_idl
+ $(MAKE) depend
+ $(MAKE) lib
+ $(MAKE) bin
+ $(MAKE) resources
+
+#
+# add target to build administrative files
+#
+
+Makefile: $(top_builddir)/config.status $(srcdir)/Makefile.in
+ cd $(top_builddir) ; ./config.status
+
+$(top_builddir)/config.status: $(top_srcdir)/configure
+ cd $(top_builddir) ; ./config.status --recheck
+
+# VPATH contain $(srcdir), so make configure is good in top_srcdir and we must add target configure otherwise :-)
+ifneq ($(top_srcdir),$(srcdir))
+configure: $(top_srcdir)/configure
+endif
+
+$(top_srcdir)/configure: $(top_srcdir)/configure.in $(top_srcdir)/aclocal.m4
+ cd $(top_srcdir) ; autoconf
+
+$(top_srcdir)/configure.in: $(top_srcdir)/configure.in.base
+ cd $(top_srcdir) && ./build_configure
+
+
+ACLOCAL_SRC = \
+ac_cxx_bool.m4 check_corba.m4 check_vtk.m4 \
+ac_cxx_depend_flag.m4 check_hdf5.m4 enable_pthreads.m4 \
+ac_cxx_mutable.m4 check_mico.m4 libtool.m4 \
+ac_cxx_namespaces.m4 check_omniorb.m4 pyembed.m4 \
+ac_cxx_partial_specialization.m4 check_opengl.m4 python.m4 \
+ac_cxx_typename.m4 check_pthreads.m4 check_cas.m4 \
+ac_cc_warnings.m4 check_qt.m4 check_med2.m4 \
+check_swig.m4
+
+$(top_srcdir)/aclocal.m4: $(ACLOCAL_SRC:%=@KERNEL_ROOT_DIR@/salome_adm/unix/config_files/%)
+ cd $(top_srcdir) ; aclocal --acdir=@KERNEL_ROOT_DIR@/salome_adm/unix/config_files
+
diff --git a/salome_adm/unix/make_conclude.in b/salome_adm/unix/make_conclude.in
new file mode 100644
index 000000000..e8400bcaf
--- /dev/null
+++ b/salome_adm/unix/make_conclude.in
@@ -0,0 +1,346 @@
+#=======================================================================
+# This section of this makefile comes from the file
+# 'adm/unix/make_conclude' which was generated with config.status
+# from file adm/unix/make_conclude.in
+#=======================================================================
+# -* Makefile *-
+#
+# Authors : Patrick GOLDBRONN (CEA) - Marc Tajchman (CEA)
+# Date : 6/07/2001
+# $Header$
+#
+
+# ORB Specifics rules
+@CORBA@
+
+# transform idl reference in appropriate obj file
+LIB_CLIENT_SRC = $(LIB_CLIENT_IDL:%.idl=%$(IDL_CLN_CXX))
+LIB_SERVER_SRC = $(LIB_SERVER_IDL:%.idl=%$(IDL_SRV_CXX))
+LIB_MOC_SRC = $(LIB_MOC:%.h=%_moc.cxx)
+LIB_SRC+=$(LIB_MOC_SRC)
+LIB_SWIG_SRC = $(SWIG_DEF:%.i=%_wrap.cxx)
+LIB_DEP= $(LIB_SRC) $(LIB_CLIENT_SRC) $(LIB_SERVER_SRC) $(LIB_SWIG_SRC)
+
+LIB_CLIENT_OBJ = $(LIB_CLIENT_IDL:%.idl=%$(IDL_CLN_OBJ))
+LIB_SERVER_OBJ = $(LIB_SERVER_IDL:%.idl=%$(IDL_SRV_OBJ))
+
+
+# transform c file in appropriate libtool obj file (.c, .cc and .cxx)
+LIB_OBJ_C = $(patsubst %.c, %.lo, $(filter %.c, $(LIB_SRC)))
+LIB_OBJ_CC = $(patsubst %.cc, %.lo, $(filter %.cc, $(LIB_SRC)))
+LIB_OBJ_CXX = $(patsubst %.cxx, %.lo, $(filter %.cxx, $(LIB_SRC)))
+LIB_SWIG_OBJ = $(LIB_SWIG_SRC:%.cxx=%.lo)
+LIB_OBJ_F = $(patsubst %.f, %.lo, $(filter %.f, $(LIB_SRC)))
+
+# all libtool obj file in library
+LIB_OBJ = $(LIB_OBJ_CXX) $(LIB_OBJ_CC) $(LIB_OBJ_C) $(LIB_CLIENT_OBJ:%.o=%.lo) $(LIB_SERVER_OBJ:%.o=%.lo) $(LIB_SWIG_OBJ) $(LIB_OBJ_F)
+
+# LIB_BUILD = $(LIB:%.la=$(top_builddir)/lib/salome/%.la)
+LIB_BUILD = $(patsubst %.la, $(top_builddir)/lib/salome/%.la, $(filter %.la, $(LIB)))
+LIB_BUILD_A = $(patsubst %.a, $(top_builddir)/lib/salome/%.a, $(filter %.a, $(LIB)))
+
+ifneq ($(findstring cmodule.la,$(filter %.la, $(LIB))),)
+LIB_SWIG = $(patsubst %cmodule.la,%.so, $(filter %.la, $(LIB)))
+else
+LIB_SWIG =
+endif
+
+lib: $(LIB_BUILD) $(LIB_CLIENT_PY)
+# we don't build static library !
+
+$(LIB_BUILD): $(top_builddir)/lib/salome/%.la: %.la
+ -$(RM) $@
+ -$(RM) $(patsubst %.la, %.so, $@)
+ -$(RM) $(patsubst %.la, %.a, $@)
+ ln -s $(CURDIR)/$< $@ || true
+ ln -s $(patsubst %.la, %.so, $(CURDIR)/.libs/$<) \
+ $(patsubst %.la, %.so, $@) || true
+ ln -s $(patsubst %.la, %.so, $(CURDIR)/.libs/$<).0 \
+ $(patsubst %.la, %.so, $@).0 || true
+
+ if ! test -z $(LIB_SWIG) ; then \
+ ln -s $(patsubst %.la,%.so, $(CURDIR)/.libs/$<) $(top_builddir)/lib/salome/_$(LIB_SWIG) || true;\
+ fi;
+
+$(LIB_BUILD_A): $(top_builddir)/lib/salome/%.a: %.a
+ -$(RM) $@
+ ln -s $(CURDIR)/$< $@ || true
+
+$(LIB): $(LIB_OBJ)
+ @$(LT) --mode=link $(CXX) -rpath $(libdir) -o $@ $(CXXFLAGS) $(LIB_OBJ) $(LDFLAGS) $(LIBS)
+
+# transform idl reference in appropriate obj file
+BIN_CLIENT_SRC = $(BIN_CLIENT_IDL:%.idl=%$(IDL_CLN_CXX))
+BIN_SERVER_SRC = $(BIN_SERVER_IDL:%.idl=%$(IDL_SRV_CXX))
+BIN_MOC_SRC = $(BIN_MOC:%.h=%_moc.cxx)
+BIN_SRC+=$(BIN_MOC_SRC)
+BIN_DEP=$(BIN:%=%.cxx) $(BIN_SRC) $(BIN_CLIENT_SRC) $(BIN_SERVER_SRC)
+
+BIN_CLIENT_OBJ = $(BIN_CLIENT_IDL:%.idl=%$(IDL_CLN_OBJ))
+BIN_SERVER_OBJ = $(BIN_SERVER_IDL:%.idl=%$(IDL_SRV_OBJ))
+# transform c file in appropriate libtool obj file (.c)
+BIN_OBJ_C = $(patsubst %.c, %.o, $(filter %.c, $(BIN_SRC)))
+# transform c++ file in appropriate libtool obj file (.cc and .cxx)
+BIN_OBJ_CC = $(patsubst %.cc, %.o, $(filter %.cc, $(BIN_SRC)))
+BIN_OBJ_CXX = $(patsubst %.cxx, %.o, $(filter %.cxx, $(BIN_SRC)))
+# all obj file in bin target
+BIN_OBJ = $(BIN_OBJ_CC) $(BIN_OBJ_CXX) $(BIN_OBJ_C) $(BIN_CLIENT_OBJ) $(BIN_SERVER_OBJ)
+
+bin: $(BIN:%=$(top_builddir)/bin/salome/%) $(BIN) $(LIB) pyscripts sharedpyscripts
+
+BIN_LIB=$(LIB:lib%.la=-l%)
+
+$(BIN:%=$(top_builddir)/bin/salome/%) $(TEST_PROGS:%=$(top_builddir)/bin/salome/%): $(top_builddir)/bin/salome/%: %
+ -$(RM) $@
+ ln -s $(CURDIR)/$< $@
+
+$(BIN) $(TEST_PROGS): %: %.lo $(BIN_OBJ)
+ $(CXX) $(CXXFLAGS) -o $@ $^ $(BIN_LIB) $(LDFLAGS) $(LIBS)
+
+# copy python scripts in $(top_builddir)/bin/salome
+#
+DEST_PYSCRIPTS = $(EXPORT_PYSCRIPTS:%=$(top_builddir)/bin/salome/%)
+pyscripts: $(DEST_PYSCRIPTS)
+$(DEST_PYSCRIPTS): $(top_builddir)/bin/salome/%: %
+ cp -f $< $@
+
+# copy pyqt files in $(PYTHON_SHARED_SITE)
+#
+PYTHON_SHARED_SITE=$(top_builddir)/lib/python$(PYTHON_VERSION)/site-packages/salome/shared_modules
+
+$(PYTHON_SHARED_SITE):
+ $(INSTALL) -d $@
+
+DEST_SHAREDPYSCRIPTS = $(EXPORT_SHAREDPYSCRIPTS:%=$(PYTHON_SHARED_SITE)/%)
+sharedpyscripts: $(PYTHON_SHARED_SITE) $(DEST_SHAREDPYSCRIPTS)
+$(DEST_SHAREDPYSCRIPTS): $(PYTHON_SHARED_SITE)/%: %
+ cp -f $< $@
+
+check: test
+
+tests: test
+
+test: $(LIB) $(TEST_PROGS:%=$(top_builddir)/bin/salome/%)
+
+
+# copy header file in $(inc_builddir)
+#
+DEST_HEADERS = $(EXPORT_HEADERS:%=$(inc_builddir)/%)
+inc: $(DEST_HEADERS)
+$(DEST_HEADERS): $(inc_builddir)/%: %
+ cp -f $< $@
+
+# build resources file (icons and messages) : .qm file from .po file
+resources: $(PO_FILES:%.po=$(top_builddir)/share/salome/resources/%.qm)
+
+# Make installation directories if they don't exist.
+$(libdir) $(includedir) $(bindir) $(datadir) $(idldir) $(sharedpydir):
+ $(INSTALL) -d $@ && chmod 755 $@
+
+# Install the library, the public header files, and programs.
+install: $(LIB) $(BIN) $(TEST_PROGS) $(libdir) $(includedir) $(bindir) $(datadir) $(idldir) install-python install-sharedpyqt install-qm
+ @for f in X $(LIB); do \
+ if test $$f != X; then \
+ ($(LT_INSTALL_LIB) $$f $(libdir)/. || exit 1); \
+ fi; \
+ done
+ @if ! test -z $(LIB_SWIG) ; then \
+ (cd $(libdir); ln -s $(patsubst %.so, %cmodule.so, $(LIB_SWIG)) _$(LIB_SWIG) || true); \
+ fi;
+ @for f in X $(BIN); do \
+ if test $$f != X; then \
+ ($(LT_INSTALL_PROG) $$f $(bindir)/. || exit 1); \
+ fi; \
+ done
+# Install tests programmes in bindir
+ @for f in X $(TEST_PROGS); do \
+ if test $$f != X; then \
+ ($(LT_INSTALL_PROG) $$f $(bindir)/. || exit 1); \
+ fi; \
+ done
+# Install exported includes in includedir
+ @for f in X $(EXPORT_HEADERS:%=$(srcdir)/%); do \
+ if test $$f != X; then \
+ ($(INSTALL_DATA) $$f $(includedir)/. || exit 1); \
+ fi; \
+ done
+
+# Install python script in $(bindir)
+install-python: $(bindir) $(EXPORT_PYSCRIPTS:%=install-%)
+
+$(EXPORT_PYSCRIPTS:%=install-%): install-%: %
+ $(INSTALL_PROGRAM) $< $(bindir)/.
+
+#install-python: $(bindir) $(EXPORT_PYSCRIPTS)
+# @for f in X $(EXPORT_PYSCRIPTS); do \
+# if test $$f != X; then \
+# ($(INSTALL_PROGRAM) $$f $(bindir)/. || exit 1); \
+# fi; \
+# done
+
+# Install pyqt script in $(install-sharedpyqt)
+install-sharedpyqt: $(sharedpydir) $(EXPORT_SHAREDPYSCRIPTS:%=install-%)
+
+$(EXPORT_SHAREDPYSCRIPTS:%=install-%): install-%: %
+ $(INSTALL_PROGRAM) $< $(sharedpydir)/.
+
+
+# generic rule to install .qm files :
+install-qm: resources
+ $(INSTALL) -d $(datadir)/resources
+ @for f in X $(PO_FILES:%.po=$(top_builddir)/share/salome/resources/%.qm); do \
+ if test $$f != X; then \
+ ($(INSTALL_DATA) $$f $(datadir)/resources/. || exit 1); \
+ fi; \
+ done
+
+# Removes those things that `make install' (would have) installed.
+uninstall:
+ @if test "X$(LIB)" != X; then \
+ for f in $(LIB); do \
+ $(LT_UNINSTALL) $(libdir)/$$f; \
+ done; \
+ fi
+ @if test "X$(BIN)" != X; then \
+ for f in $(BIN); do \
+ $(LT_UNINSTALL) $(bindir)/$$f; \
+ done; \
+ fi
+ @for f in X $(TEST_PROGS); do \
+ if test $$f != X; then \
+ $(LT_UNINSTALL) $(bindir)/$$f; \
+ fi; \
+ done
+# Uninstall exported includes in includedir
+ @for f in X $(EXPORT_HEADERS); do \
+ if test $$f != X; then \
+ $(LT_UNINSTALL) $(includedir)/$$f; \
+ fi; \
+ done
+# Uninstall python script in $(bindir)
+ @for f in X $(EXPORT_PYSCRIPTS); do \
+ if test $$f != X; then \
+ $(LT_UNINSTALL) $(bindir)/$$f ; \
+ fi; \
+ done
+
+# Uninstall pyqt script in $(sharedpydir)
+ @for f in X $(EXPORT_SHAREDPYSCRIPTS); do \
+ if test $$f != X; then \
+ $(LT_UNINSTALL) $(sharedpydir)/$$f ; \
+ fi; \
+ done
+
+# Uninstall qm files
+ @for f in X $(PO_FILES:%.po=%.qm); do \
+ if test $$f != X; then \
+ $(LT_UNINSTALL) $(datadir)/resources/$$f ; \
+ fi; \
+ done
+
+# remove all dependencies files
+#
+cleandep:
+ -$(RM) .dep*
+
+# Removes temporary files without removing the final target files. That is,
+# remove things like object files but not libraries or executables.
+#
+mostlyclean: cleandep
+ -$(RM) $(LIB_OBJ) $(LIB_OBJ:.lo=.o)
+ -$(RM) $(BIN_OBJ) $(BIN:%=%.o)
+ -$(RM) $(TEST_OBJ) $(TEST_OBJ:.lo=.o)
+ -$(RM) $(PROG_OBJ) $(PROG_OBJ:.lo=.o) $(MOSTLYCLEAN)
+
+# Like `mostlyclean' except it also removes the final targets: things like
+# libraries and executables. This target doesn't remove any file that
+# is part of the SALOME distribution.
+#
+clean: mostlyclean
+ -$(RM) $(LIB) $(TEST_PROGS) $(BIN) $(CLEAN)
+ -$(RM) TAGS *~ *# core *.core
+ -$(RM) -r .libs
+ -$(RM) $(top_builddir)/lib/salome/$(LIB)
+ -$(RM) $(patsubst %,$(top_builddir)/bin/salome/%, $(BIN))
+ -$(RM) $(patsubst %.la, %.so, $(top_builddir)/lib/salome/$(LIB))
+ -$(RM) $(patsubst %.la, %.a, $(top_builddir)/lib/salome/$(LIB))
+# remove idl generated files (sources)
+ -$(RM) $(LIB_CLIENT_SRC) $(LIB_SERVER_SRC) $(BIN_CLIENT_SRC) $(BIN_SERVER_SRC)
+# remove idl generated files (headers)
+ -$(RM) $(LIB_CLIENT_IDL:%.idl=%$(IDL_CLN_H)) $(LIB_SERVER_IDL:%.idl=%$(IDL_SRV_H))
+ -$(RM) $(BIN_CLIENT_IDL:%.idl=%$(IDL_CLN_H)) $(BIN_SERVER_IDL:%.idl=%$(IDL_SRV_H))
+ -$(RM) $(LIB_MOC_SRC) $(BIN_MOC_SRC)
+ -$(RM) $(LIB_SWIG_SRC)
+
+# Like `clean' except it also removes files that were created by running
+# configure. If you've unpacked the source and built without creating
+# any other files, then `make distclean' will leave only the files that were
+# in the distribution.
+#
+distclean: clean
+ #remove qm file !
+ -$(RM) $(PO_FILES:%.po=%.qm) $(PO_FILES:%.po=$(top_builddir)/share/salome/resources/%.qm)
+ #remove include files
+ -$(RM) $(DEST_HEADERS)
+ -$(RM) $(DISTCLEAN) *.bak *.old *.new .dep*
+ @if test -f $(srcdir)/Makefile.in; then \
+ (@SETX@; $(RM) Makefile); \
+ fi
+
+
+#implicits rules
+.cc.o:
+ $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<
+
+.cc.lo:
+ $(LT) --mode=compile $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<
+
+.cxx.o:
+ $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<
+
+.cxx.lo:
+ $(LT) --mode=compile $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<
+
+.c.o:
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c $<
+
+.c.lo:
+ $(LT_COMPILE) $(CFLAGS) $(CPPFLAGS) -c $<
+
+.f.o:
+ $(FC) $(FFLAGS) -c $< -o $@
+
+.f.lo:
+ $(LT) --mode=compile $(FC) $(FFLAGS) -c $<
+
+.ui.h:
+ $(UIC) -o $@ $<
+
+.ui.cxx:
+ $(UIC) -o $@ -i $*.h $<
+
+#pattern rules
+%_moc.cxx : %.h
+ $(MOC) $< -o $@
+
+%_wrap.cxx : %.i
+ $(SWIG) $(SWIG_FLAGS) -o $@ $<
+
+$(top_builddir)/share/salome/resources/%.qm: %.po
+ if test -e ${KERNEL_ROOT_DIR}/bin/salome/msg2qm ; then \
+ ${KERNEL_ROOT_DIR}/bin/salome/msg2qm $< $@ ; \
+ else \
+ $(top_builddir)/bin/salome/msg2qm $< $@ ; \
+ fi
+
+#------------------------------------------------------------------------------
+# The following section of this makefile contains dependencies between the
+# source files and the header files. If GNU make and GCC are being used then
+# the dependencies are in the form of rules that cause the information to
+# be kept updated automatically. Otherwise the dependencies are listed
+# explicitly and come from the `.distdep' files in the various directories.
+# These files are part of the distribution and are generated automatically on
+# GNU/GCC systems.
+#------------------------------------------------------------------------------
+
+@DEPEND@
diff --git a/salome_adm/unix/make_module.in b/salome_adm/unix/make_module.in
new file mode 100644
index 000000000..315ad68e7
--- /dev/null
+++ b/salome_adm/unix/make_module.in
@@ -0,0 +1,109 @@
+# generic rule to put in top module Makefile
+# (for example with module SALOME, SALOME/Makefile.in and SALOME/src/Makefile.in)
+
+# build all lib in all subdir
+lib:$(SUBDIRS:%=lib_%)
+
+$(SUBDIRS:%=lib_%):lib_%:%
+ cd $< ; $(MAKE) lib
+
+# build all bin in all subdir
+bin:
+ @@SETX@; for d in $(SUBDIRS); do \
+ (cd $$d && $(MAKE) $@) || exit 1; \
+ done
+
+# launch check in all subdir
+check: tests
+tests:
+ @@SETX@; for d in $(SUBDIRS); do \
+ (cd $$d && $(MAKE) $@) || exit 1; \
+ done
+
+# copy all header files in common directory
+inc:
+ @@SETX@; for d in $(SUBDIRS); do \
+ (cd $$d && $(MAKE) $@) || exit 1; \
+ done
+
+exportinc:
+ @@SETX@; for d in $(SUBDIRS); do \
+ (cd $$d && $(MAKE) $@) || exit 1; \
+ done
+
+# copy all idl files in common directory
+idl:
+ @@SETX@; for d in $(SUBDIRS); do \
+ (cd $$d && $(MAKE) $@) || exit 1; \
+ done
+
+dep: depend
+
+depend:
+ @@SETX@; for d in $(SUBDIRS); do \
+ (cd $$d && $(MAKE) $@) || exit 1; \
+ done
+
+# copy all resources files in common directory
+resources: $(RESOURCES_FILES:%=$(top_builddir)/share/salome/resources/%)
+ @@SETX@; for d in $(SUBDIRS); do \
+ (cd $$d && $(MAKE) $@) || exit 1; \
+ done
+
+$(RESOURCES_FILES:%=$(top_builddir)/share/salome/resources/%): $(top_builddir)/share/salome/resources/% : %
+ cp -f $< $@
+
+
+install: install-resources
+ @@SETX@; for d in $(SUBDIRS); do \
+ (cd $$d && $(MAKE) $@) || exit 1; \
+ done
+ @if test "X$(top_builddir)" = "X."; then \
+ $(LT) --mode=finish $(libdir) ; \
+ fi
+
+uninstall: uninstall-resources
+ @@SETX@; for d in $(SUBDIRS); do \
+ (cd $$d && $(MAKE) $@) || exit 1; \
+ done
+
+cleandep:
+ @@SETX@; for d in $(SUBDIRS); do \
+ (cd $$d && $(MAKE) $@) || exit 1; \
+ done
+
+mostlyclean:
+ @@SETX@; for d in $(SUBDIRS); do \
+ (cd $$d && $(MAKE) $@) || exit 1; \
+ done
+
+clean:
+ @@SETX@; for d in $(SUBDIRS); do \
+ (cd $$d && $(MAKE) $@) || exit 1; \
+ done
+ -$(RM) .depend *~ *% core *.core *.bak *.new *.old
+
+distclean: clean
+ @@SETX@; for d in $(SUBDIRS); do \
+ (cd $$d && $(MAKE) $@) || exit 1; \
+ done
+ -$(RM) $(RESOURCES_FILES:%=$(top_builddir)/share/salome/resources/%)
+ -$(RM) Makefile
+
+install-resources:
+# one resources directory for all salome modules
+ $(INSTALL) -d $(datadir)/resources
+ for f in X $(RESOURCES_FILES:%=$(srcdir)/resources/%); do \
+ if test $$f != X; then \
+ ($(INSTALL_DATA) $$f $(datadir)/resources/. || exit 1); \
+ fi; \
+ done
+
+# Uninstall resources files
+uninstall-resources:
+ @for f in X $(RESOURCES_FILES); do \
+ if test $$f != X; then \
+ $(LT_UNINSTALL) $(datadir)/resources/$$f ; \
+ fi; \
+ done
+
diff --git a/salome_adm/unix/make_omniorb.in b/salome_adm/unix/make_omniorb.in
new file mode 100644
index 000000000..c92e682e6
--- /dev/null
+++ b/salome_adm/unix/make_omniorb.in
@@ -0,0 +1,50 @@
+#=======================================================================
+# Begin specific part to omniorb
+# (include from file adm/unix/make_omniorb generated by
+# adm/unix/make_omniorb.in)
+#=======================================================================
+# -* Makefile *-
+#
+# Author : Patrick GOLDBRONN (CEA)
+# Date : 29/06/2001
+# $Header$
+#
+
+# Client and server object are the same with omniorb
+# There are one header file and one source file generate
+
+#IDLOBJ=$(IDLSRC:%.idl=%$(IDL_CLN_OBJ))
+
+# dependancies between idl and it's generated files
+%$(OMNIORB_IDL_CLN_CXX) %$(OMNIORB_IDL_CLN_H): ${top_builddir}/idl/%.idl
+ $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
+
+# dependncies between idl files
+depend_idl: .depidl
+
+# we use cpp to generate dependencies between idl files.
+# we change cpp output to keep only idl file and transform it to get a suitable rule
+.depidl: $(IDL_FILES)
+ @touch $@
+ @for dep in $? dummy; do \
+ if [ $$dep != "dummy" ]; then \
+ echo Building dependencies for $$dep; \
+ basedep=`basename $$dep .idl`; \
+ header="$$basedep"$(IDL_CLN_H); \
+ sed '\%^'"$$header"':%,\%[^\\]$$%d' <$@ >$@- && mv $@- $@; \
+ $(CPP) $(C_DEPEND_FLAG) -I$(srcdir) $$dep 2>/dev/null | \
+ sed `echo "s%$$basedep\\.idl%$$header:%g"` | \
+ sed 's% $(srcdir)/% %g' | \
+ sed 's% $(top_srcdir)/% %g' | \
+ sed 's% $(top_builddir)/% %g' | \
+ sed 's%^.*:\.o: *%%' | sed 's%^ *\\ *%%'| sed 's%^ *\(.*\):%\1:%' | \
+ sed 's/\.idl/$(IDL_CLN_H)/' >>$@; \
+ echo '' >>$@; \
+ fi; \
+ done ;
+
+-include .depidl
+
+#=======================================================================
+# End specific part to omniorb
+#=======================================================================
diff --git a/salome_adm/unix/sstream.in b/salome_adm/unix/sstream.in
new file mode 100644
index 000000000..323bbed45
--- /dev/null
+++ b/salome_adm/unix/sstream.in
@@ -0,0 +1,225 @@
+/* This is part of libio/iostream, providing -*- C++ -*- input/output.
+Copyright (C) 2000 Free Software Foundation
+
+This file is part of the GNU IO Library. This library is free
+software; you can redistribute it and/or modify it under the
+terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this library; see the file COPYING. If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+As a special exception, if you link this library with files
+compiled with a GNU compiler to produce an executable, this does not cause
+the resulting executable to be covered by the GNU General Public License.
+This exception does not however invalidate any other reasons why
+the executable file might be covered by the GNU General Public License. */
+
+/* Written by Magnus Fromreide (magfr@lysator.liu.se). */
+
+#ifndef __SSTREAM__
+#define __SSTREAM__
+
+#include
+#include
+#include
+
+namespace std
+{
+ class stringbuf : public streambuf
+ {
+ public:
+ typedef char char_type;
+ typedef int int_type;
+ typedef streampos pos_type;
+ typedef streamoff off_type;
+
+ explicit stringbuf(int which=ios::in|ios::out) :
+ streambuf(which), buf(), mode(static_cast(which)),
+ rpos(0), bufsize(1)
+ { }
+
+ explicit stringbuf(const std::string &s, int which=ios::in|ios::out) :
+ streambuf(which), buf(s), mode(static_cast(which)),
+ bufsize(1)
+ {
+ if(mode & ios::in)
+ {
+ setg(&defbuf, &defbuf + bufsize, &defbuf + bufsize);
+ }
+ if(mode & ios::out)
+ {
+ setp(&defbuf, &defbuf + bufsize);
+ }
+ rpos = (mode & ios::ate ? s.size() : 0);
+ }
+
+ std::string str() const
+ {
+ const_cast(this)->sync(); // Sigh, really ugly hack
+ return buf;
+ };
+
+ void str(const std::string& s)
+ {
+ buf = s;
+ if(mode & ios::in)
+ {
+ gbump(egptr() - gptr());
+ }
+ if(mode & ios::out)
+ {
+ pbump(pbase() - pptr());
+ }
+ rpos = (mode & ios::ate ? s.size() : 0);
+ }
+
+ protected:
+ inline virtual int sync();
+ inline virtual int overflow(int = EOF);
+ inline virtual int underflow();
+ private:
+ std::string buf;
+ ios::open_mode mode;
+ std::string::size_type rpos;
+ streamsize bufsize;
+ char defbuf;
+ };
+
+ class stringstreambase : virtual public ios {
+ protected:
+ stringbuf __my_sb;
+ public:
+ std::string str() const
+ {
+ return dynamic_cast(_strbuf)->str();
+ }
+ void str(const std::string& s)
+ {
+ clear();
+ dynamic_cast(_strbuf)->str(s);
+ }
+
+ stringbuf* rdbuf()
+ {
+ return &__my_sb;
+ }
+ protected:
+ stringstreambase(int which) :
+ __my_sb(which)
+ {
+ init (&__my_sb);
+ }
+
+ stringstreambase(const std::string& s, int which) :
+ __my_sb(s, which)
+ {
+ init (&__my_sb);
+ }
+ };
+
+ class istringstream : public stringstreambase, public istream {
+ public:
+ istringstream(int which=ios::in) :
+ stringstreambase(which)
+ { }
+
+ istringstream(const std::string& s, int which=ios::in) :
+ stringstreambase(s, which)
+ { }
+ };
+
+ class ostringstream : public stringstreambase, public ostream {
+ public:
+ ostringstream(int which=ios::out) :
+ stringstreambase(which)
+ { }
+
+ ostringstream(const std::string& s, int which=ios::out) :
+ stringstreambase(s, which)
+ { }
+ };
+
+ class stringstream : public stringstreambase, public iostream {
+ public:
+ stringstream(int which=ios::in|ios::out) :
+ stringstreambase(which)
+ { }
+
+ stringstream(const std::string &s, int which=ios::in|ios::out) :
+ stringstreambase(s, which)
+ { }
+ };
+}
+
+inline int std::stringbuf::sync()
+{
+ if((mode & ios::out) == 0)
+ return EOF;
+
+ streamsize n = pptr() - pbase();
+ if(n)
+ {
+ buf.replace(rpos, std::string::npos, pbase(), n);
+ if(buf.size() - rpos != n)
+ return EOF;
+ rpos += n;
+ pbump(-n);
+ gbump(egptr() - gptr());
+ }
+ return 0;
+}
+
+inline int std::stringbuf::overflow(int ch)
+{
+ if((mode & ios::out) == 0)
+ return EOF;
+
+ streamsize n = pptr() - pbase();
+
+ if(n && sync())
+ return EOF;
+
+ if(ch != EOF)
+ {
+ std::string::size_type oldSize = buf.size();
+
+ buf.replace(rpos, std::string::npos, ch);
+ if(buf.size() - oldSize != 1)
+ return EOF;
+ ++rpos;
+ }
+ return 0;
+}
+
+inline int std::stringbuf::underflow()
+{
+ sync();
+ if((mode & ios::in) == 0)
+ {
+ return EOF;
+ }
+ if(rpos >= buf.size())
+ {
+ return EOF;
+ }
+
+ std::string::size_type n = egptr() - eback();
+ std::string::size_type s;
+
+ s = buf.copy(eback(), n, rpos);
+ pbump(pbase() - pptr());
+ gbump(eback() - gptr());
+ int res = (0377 & buf[rpos]);
+ rpos += s;
+ return res;
+}
+
+#endif /* not __STRSTREAM__ */
diff --git a/src/A_LIRE_SALOME b/src/A_LIRE_SALOME
new file mode 100644
index 000000000..892bf1293
--- /dev/null
+++ b/src/A_LIRE_SALOME
@@ -0,0 +1,73 @@
+Environnement
+-------------
+repertoire de construction (build) :
+ variables d'environement, a passer plutot dans les Makefile
+
+ export BUILD_SALOME=${HOME}/devSalome/build
+ export SALOME_LIB_DIR=${BUILD_SALOME}/lib
+ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${BUILD_SALOME}/lib
+
+naming Service : cf. plus bas.
+
+IAPP_XML (exemple N. Rejneri adapté)
+--------
+
+- options de compilation revues (Qt avec threads)
+- creation de librairie
+- initialiser tous les membres de classe pointeurs à NULL dans le constructeur
+ (plantage à la 2° execution de mainWindow sur handler non nul)
+- utilisation de getenv pour trouver le path des ressources (xml, librairies, icones)
+- utilisation "extern C" pour l'appel de methode ds librairie dynamique
+
+Naming Service
+--------------
+- creation librairie avec la classe d'implementation de SALOME_NamingService
+- environnement
+
+export OMNIORB_CONFIG=${HOME}/.omniORB.cfg
+
+1 line in file ${HOME}/.omniORB.cfg
+ORBInitRef NameService=corbaname::localhost
+
+(replace localhost by internet address to access Naming Service from other machines)
+
+# environnement Mico2.3.5
+
+export MICODIR=/opt/mico2.3.5
+export MICOVERSION=` sed -n '/MICO_VERSION/ { y/b/./; s#^[^"]*"\([^"]*\)".*$#\1#p; }' \
+ "$MICODIR/include/mico/version.h" `
+export PATH=${PATH}:${MICODIR}/bin
+export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MICODIR}/lib
+export MANPATH=${MANPATH}:${MICODIR}/man
+export LIBPATH=${LIBPATH}:${MICODIR}/lib
+export SHLIB_PATH=${SHLIB_PATH}:${MICODIR}/lib
+export LIBRARY_PATH=${MICODIR}/lib
+export CPLUS_INCLUDE_PATH=${MICODIR}/include
+
+-------------------------------------------------------------------------------
+TODO LIST
+-------------------------------------------------------------------------------
+
+Utils
+-----
+ - CPU&Memory measurements
+ - Makefile : library, includes
+ - Doxygen comments
+
+Session
+-------
+
+Server :
+ - test only one mainWindow (mutex)
+
+Loader :
+ - get stats to know if Server is OK before get interface
+
+Session stats :
+ - write the code
+
+Session Kill :
+ - write the code
+ - get stats to know if there is one or more active sessions before kill.
+
+Launch script for everything :
diff --git a/src/Container/Component_i.cxx b/src/Container/Component_i.cxx
new file mode 100644
index 000000000..eeed8aed1
--- /dev/null
+++ b/src/Container/Component_i.cxx
@@ -0,0 +1,254 @@
+using namespace std;
+//=============================================================================
+// File : Component_i.cxx
+// Created : jeu jui 12 08:04:40 CEST 2001
+// Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA
+// Project : SALOME
+// Copyright : EDF 2001 - CEA 2001
+// $Header$
+//=============================================================================
+
+#include "SALOME_Component_i.hxx"
+#include "RegistryConnexion.hxx"
+#include "OpUtil.hxx"
+#include
+#include
+#include "utilities.h"
+
+extern bool _Sleeping ;
+
+Engines_Component_i::Engines_Component_i()
+{
+// MESSAGE("Component constructor");
+}
+
+Engines_Component_i::Engines_Component_i(CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ PortableServer::ObjectId * contId,
+ const char *instanceName,
+ const char *interfaceName,
+ bool notif) :
+ _instanceName(instanceName), _interfaceName(interfaceName),
+ _myConnexionToRegistry(0), _ThreadId(0) , _graphName("") , _nodeName("") {
+ MESSAGE("Component constructor with instanceName "<< _instanceName);
+ _orb = CORBA::ORB::_duplicate(orb);
+ _poa = PortableServer::POA::_duplicate(poa);
+ _contId = contId ;
+ CORBA::Object_var o = _poa->id_to_reference(*contId); // container ior...
+ const CORBA::String_var ior = _orb->object_to_string(o);
+ _myConnexionToRegistry = new RegistryConnexion(0, 0, ior, "theSession", _instanceName.c_str());
+
+ _notifSupplier = new NOTIFICATION_Supplier(instanceName, notif);
+}
+
+// Constructeur pour composant parallele: ne pas faire appel au registry!!
+Engines_Component_i::Engines_Component_i(CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ PortableServer::ObjectId * contId,
+ const char *instanceName,
+ const char *interfaceName,
+ int flag,
+ bool notif )
+ : _instanceName(instanceName),
+ _interfaceName(interfaceName),
+ _myConnexionToRegistry(0),
+ _ThreadId(0)
+{
+// MESSAGE("Component constructor with instanceName "<< _instanceName);
+ _orb = CORBA::ORB::_duplicate(orb);
+ _poa = PortableServer::POA::_duplicate(poa);
+ _contId = contId ;
+ // CORBA::Object_var myself = this->_this(); //appel a _this = increment reference
+
+ _notifSupplier = new NOTIFICATION_Supplier(instanceName, notif);
+}
+
+Engines_Component_i::~Engines_Component_i()
+{
+ MESSAGE("Component destructor");
+// delete _myConnexionToRegistry;
+// _myConnexionToRegistry = 0 ;
+}
+
+char* Engines_Component_i::instanceName() {
+ return CORBA::string_dup(_instanceName.c_str()) ;
+}
+
+char* Engines_Component_i::interfaceName() {
+ return CORBA::string_dup(_interfaceName.c_str()) ;
+}
+
+void Engines_Component_i::ping()
+{
+ MESSAGE("Engines_Component_i::ping() pid "<< getpid() << " threadid "
+ << pthread_self());
+}
+
+void Engines_Component_i::destroy()
+{
+ MESSAGE("Engines_Component_i::destroy()");
+
+ delete _notifSupplier;
+ _notifSupplier = 0;
+
+ delete _myConnexionToRegistry;
+ _myConnexionToRegistry = 0 ;
+ _poa->deactivate_object(*_id) ;
+ CORBA::release(_poa) ;
+ delete(_id) ;
+ _thisObj->_remove_ref();
+ MESSAGE("Engines_Component_i::destroyed") ;
+}
+
+Engines::Container_ptr Engines_Component_i::GetContainerRef()
+{
+ MESSAGE("Engines_Component_i::GetContainerRef");
+ CORBA::Object_ptr o = _poa->id_to_reference(*_contId) ;
+ return Engines::Container::_narrow(o);
+}
+
+PortableServer::ObjectId * Engines_Component_i::getId()
+{
+// MESSAGE("PortableServer::ObjectId * Engines_Component_i::getId()");
+ return _id ;
+}
+
+void Engines_Component_i::beginService(const char *serviceName)
+{
+ MESSAGE("Send BeginService notification for " << serviceName << endl
+ << "Component instance : " << _instanceName << endl << endl);
+ _ThreadId = pthread_self() ;
+ _serviceName = serviceName ;
+ if ( pthread_setcanceltype( PTHREAD_CANCEL_ASYNCHRONOUS , NULL ) ) {
+ perror("pthread_setcanceltype ") ;
+ exit(0) ;
+ }
+ if ( pthread_setcancelstate( PTHREAD_CANCEL_ENABLE , NULL ) ) {
+ perror("pthread_setcancelstate ") ;
+ exit(0) ;
+ }
+ MESSAGE("Return from BeginService for " << serviceName
+ << " ThreadId " << _ThreadId
+ << " _graphName " << _graphName << " _nodeName " << _nodeName );
+}
+
+void Engines_Component_i::endService(const char *serviceName)
+{
+ MESSAGE("Send EndService notification for " << serviceName << endl
+ << "Component instance : " << _instanceName << endl << endl);
+ _ThreadId = 0 ;
+}
+
+void Engines_Component_i::Names( const char * graphName ,
+ const char * nodeName ) {
+ _graphName = graphName ;
+ _nodeName = nodeName ;
+// MESSAGE("Engines_Component_i::Names( '" << _graphName << "' , '"
+// << _nodeName << "' )");
+}
+
+char* Engines_Component_i::graphName() {
+ return CORBA::string_dup( _graphName.c_str() ) ;
+}
+
+char* Engines_Component_i::nodeName() {
+ return CORBA::string_dup( _nodeName.c_str() ) ;
+}
+
+bool Killer( int ThreadId , int signum ) {
+ if ( ThreadId ) {
+ if ( signum == 0 ) {
+ if ( pthread_cancel( ThreadId ) ) {
+ perror("Killer pthread_cancel error") ;
+ return false ;
+ }
+ else {
+ MESSAGE("Killer : ThreadId " << ThreadId << " pthread_cancel") ;
+ }
+ }
+ else {
+ if ( pthread_kill( ThreadId , signum ) == -1 ) {
+ perror("Killer pthread_kill error") ;
+ return false ;
+ }
+ else {
+ MESSAGE("Killer : ThreadId " << ThreadId << " pthread_killed("
+ << signum << ")") ;
+ }
+ }
+ }
+ return true ;
+}
+
+bool Engines_Component_i::Kill_impl() {
+ MESSAGE("Engines_Component_i::Kill_i() pthread_t "<< pthread_self()
+ << " pid " << getpid() << " instanceName "
+ << _instanceName.c_str() << " interface " << _interfaceName.c_str()
+ << " machineName " << GetHostname().c_str()<< " _id " << hex << _id
+ << dec << " _ThreadId " << _ThreadId << " this " << hex << this
+ << dec ) ;
+ bool RetVal = false ;
+ if ( _ThreadId > 0 && pthread_self() != _ThreadId ) {
+ RetVal = Killer( _ThreadId , 0 ) ;
+ _ThreadId = (pthread_t ) -1 ;
+ }
+ return RetVal ;
+}
+
+bool Engines_Component_i::Stop_impl() {
+ MESSAGE("Engines_Component_i::Stop_i() pthread_t "<< pthread_self()
+ << " pid " << getpid() << " instanceName "
+ << _instanceName.c_str() << " interface " << _interfaceName.c_str()
+ << " machineName " << GetHostname().c_str()<< " _id " << hex << _id
+ << dec << " _ThreadId " << _ThreadId );
+ bool RetVal = false ;
+ if ( _ThreadId > 0 && pthread_self() != _ThreadId ) {
+ RetVal = Killer( _ThreadId , 0 ) ;
+ _ThreadId = (pthread_t ) -1 ;
+ }
+ return RetVal ;
+}
+
+bool Engines_Component_i::Suspend_impl() {
+ MESSAGE("Engines_Component_i::Suspend_i() pthread_t "<< pthread_self()
+ << " pid " << getpid() << " instanceName "
+ << _instanceName.c_str() << " interface " << _interfaceName.c_str()
+ << " machineName " << GetHostname().c_str()<< " _id " << hex << _id
+ << dec << " _ThreadId " << _ThreadId );
+ bool RetVal = false ;
+ if ( _ThreadId > 0 && pthread_self() != _ThreadId ) {
+ if ( _Sleeping ) {
+ return false ;
+ }
+ else {
+ RetVal = Killer( _ThreadId ,SIGINT ) ;
+ }
+ }
+ return RetVal ;
+}
+
+bool Engines_Component_i::Resume_impl() {
+ MESSAGE("Engines_Component_i::Resume_i() pthread_t "<< pthread_self()
+ << " pid " << getpid() << " instanceName "
+ << _instanceName.c_str() << " interface " << _interfaceName.c_str()
+ << " machineName " << GetHostname().c_str()<< " _id " << hex << _id
+ << dec << " _ThreadId " << _ThreadId );
+ bool RetVal = false ;
+ if ( _ThreadId > 0 && pthread_self() != _ThreadId ) {
+ if ( _Sleeping ) {
+ _Sleeping = false ;
+ RetVal = true ;
+ }
+ else {
+ RetVal = false ;
+ }
+ }
+ return RetVal ;
+
+}
+
+// Send message to event channel
+
+void Engines_Component_i::sendMessage(const char *event_type, const char *message) {
+ _notifSupplier->Send(graphName(), nodeName(), event_type, message);
+}
diff --git a/src/Container/Container_i.cxx b/src/Container/Container_i.cxx
new file mode 100644
index 000000000..d1ed7f09d
--- /dev/null
+++ b/src/Container/Container_i.cxx
@@ -0,0 +1,446 @@
+using namespace std;
+//=============================================================================
+// File : Container_i.cxx
+// Created : jeu jui 12 08:04:40 CEST 2001
+// Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA
+// Project : SALOME
+// Copyright : EDF 2001 - CEA 2001
+// $Header$
+//=============================================================================
+
+#include
+#include CORBA_SERVER_HEADER(SALOME_Component)
+#include "SALOME_Container_i.hxx"
+#include "SALOME_NamingService.hxx"
+#include "Utils_SINGLETON.hxx"
+#include "OpUtil.hxx"
+#include
+#include
+#include
+
+#include "utilities.h"
+
+bool _Sleeping = false ;
+
+// Containers with name FactoryServer are started via rsh in LifeCycleCORBA
+// Other Containers are started via start_impl of FactoryServer
+
+extern "C" {void ActSigIntHandler() ; }
+extern "C" {void SigIntHandler(int, siginfo_t *, void *) ; }
+
+Engines_Container_i::Engines_Container_i (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ char *containerName ,
+ int argc , char* argv[] ) :
+ _numInstance(0)
+{
+
+ ActSigIntHandler() ;
+
+ _argc = argc ;
+ _argv = argv ;
+ int i = strlen( _argv[ 0 ] ) - 1 ;
+ while ( i >= 0 ) {
+ if ( _argv[ 0 ][ i ] == '/' ) {
+ _argv[ 0 ][ i+1 ] = '\0' ;
+ break ;
+ }
+ i -= 1 ;
+ }
+ string hostname = GetHostname();
+ MESSAGE(hostname << " " << getpid() << " Engines_Container_i starting argc "
+ << _argc) ;
+ i = 0 ;
+ while ( _argv[ i ] ) {
+ MESSAGE(" argv" << i << " " << _argv[ i ]) ;
+ i++ ;
+ }
+ if ( argc != 4 ) {
+ MESSAGE("SALOME_Container usage : SALOME_Container ServerName -ORBInitRef NameService=corbaname::hostname:tcpipPortNumber") ;
+// exit(0) ;
+ }
+
+ SCRUTE(hostname);
+
+ _containerName = "/Containers/";
+ if (strlen(containerName)== 0)
+ {
+ _containerName += hostname;
+ }
+ else
+ {
+ _containerName += hostname;
+ _containerName += "/" ;
+ _containerName += containerName;
+ }
+
+ _orb = CORBA::ORB::_duplicate(orb) ;
+ _poa = PortableServer::POA::_duplicate(poa) ;
+ MESSAGE("activate object");
+ _id = _poa->activate_object(this);
+
+// _NS = new SALOME_NamingService(_orb);
+ _NS = SINGLETON_::Instance() ;
+ ASSERT(SINGLETON_::IsAlreadyExisting()) ;
+ _NS->init_orb( orb ) ;
+
+ Engines::Container_ptr pCont
+ = Engines::Container::_narrow(_this());
+ SCRUTE(_containerName);
+ _NS->Register(pCont, _containerName.c_str());
+}
+
+// Constructeur pour composant parallele : ne pas faire appel au naming service
+Engines_Container_i::Engines_Container_i (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ char *containerName,
+ int flag )
+ : _numInstance(0)
+{
+ string hostname = GetHostname();
+ SCRUTE(hostname);
+
+ _containerName = "/Containers/";
+ if (strlen(containerName)== 0)
+ {
+ _containerName += hostname;
+ }
+ else
+ {
+ _containerName += containerName;
+ }
+
+ _orb = CORBA::ORB::_duplicate(orb) ;
+ _poa = PortableServer::POA::_duplicate(poa) ;
+
+}
+
+Engines_Container_i::~Engines_Container_i()
+{
+ MESSAGE("Container_i::~Container_i()");
+}
+
+char* Engines_Container_i::name()
+{
+ return CORBA::string_dup(_containerName.c_str()) ;
+}
+
+char* Engines_Container_i::machineName()
+{
+ string s = GetHostname();
+ MESSAGE("Engines_Container_i::machineName " << s);
+ return CORBA::string_dup(s.c_str()) ;
+}
+
+void Engines_Container_i::ping()
+{
+ MESSAGE("Engines_Container_i::ping() pid "<< getpid());
+}
+
+bool Engines_Container_i::Kill_impl() {
+ MESSAGE("Engines_Container_i::Kill() pid "<< getpid() << " containerName "
+ << _containerName.c_str() << " machineName "
+ << GetHostname().c_str());
+ exit( 0 ) ;
+}
+
+Engines::Container_ptr Engines_Container_i::start_impl(
+ const char* ContainerName ) {
+ MESSAGE("start_impl argc " << _argc << " ContainerName " << ContainerName
+ << hex << this << dec) ;
+ _numInstanceMutex.lock() ; // lock on the instance number
+
+ CORBA::Object_var obj = Engines::Container::_nil() ;
+ bool nilvar = true ;
+ try {
+ string cont("/Containers/");
+ cont += machineName() ;
+ cont += "/" ;
+ cont += ContainerName;
+ INFOS(machineName() << " start_impl unknown container " << cont.c_str()
+ << " try to Resolve" );
+ obj = _NS->Resolve( cont.c_str() );
+ nilvar = CORBA::is_nil( obj ) ;
+ if ( nilvar ) {
+ INFOS(machineName() << " start_impl unknown container "
+ << ContainerName);
+ }
+ }
+ catch (ServiceUnreachable&) {
+ INFOS(machineName() << "Caught exception: Naming Service Unreachable");
+ }
+ catch (...) {
+ INFOS(machineName() << "Caught unknown exception.");
+ }
+ if ( !nilvar ) {
+ _numInstanceMutex.unlock() ;
+ MESSAGE("start_impl container found without runSession") ;
+ return Engines::Container::_narrow(obj);
+ }
+ int i = 0 ;
+ while ( _argv[ i ] ) {
+ MESSAGE(" argv" << i << " " << _argv[ i ]) ;
+ i++ ;
+ }
+// string shstr( "rsh -n " ) ;
+// shstr += machineName() ;
+// shstr += " " ;
+// shstr += _argv[ 0 ] ;
+// string shstr( _argv[ 0 ] ) ;
+ string shstr( "./runSession SALOME_Container " ) ;
+ shstr += ContainerName ;
+ if ( _argc == 4 ) {
+ shstr += " " ;
+ shstr += _argv[ 2 ] ;
+ shstr += " " ;
+ shstr += _argv[ 3 ] ;
+ }
+ shstr += " > /tmp/" ;
+ shstr += ContainerName ;
+ shstr += ".log 2>&1 &" ;
+ MESSAGE("system(" << shstr << ")") ;
+ int status = system( shstr.c_str() ) ;
+ if (status == -1) {
+ INFOS("Engines_Container_i::start_impl runSession(SALOME_Container) failed (system command status -1)") ;
+ }
+ else if (status == 217) {
+ INFOS("Engines_Container_i::start_impl runSession(SALOME_Container) failed (system command status 217)") ;
+ }
+ INFOS(machineName() << " Engines_Container_i::start_impl runSession(SALOME_Container) done");
+#if 0
+ pid_t pid = fork() ;
+ if ( pid == 0 ) {
+ string anExe( _argv[ 0 ] ) ;
+ anExe += "runSession" ;
+ char * args[ 6 ] ;
+ args[ 0 ] = "runSession" ;
+ args[ 1 ] = "SALOME_Container" ;
+ args[ 2 ] = strdup( ContainerName ) ;
+ args[ 3 ] = strdup( _argv[ 2 ] ) ;
+ args[ 4 ] = strdup( _argv[ 3 ] ) ;
+ args[ 5 ] = NULL ;
+ MESSAGE("execl(" << anExe.c_str() << " , " << args[ 0 ] << " , "
+ << args[ 1 ] << " , " << args[ 2 ] << " , " << args[ 3 ]
+ << " , " << args[ 4 ] << ")") ;
+ int status = execv( anExe.c_str() , args ) ;
+ if (status == -1) {
+ INFOS("Engines_Container_i::start_impl execl failed (system command status -1)") ;
+ perror( "Engines_Container_i::start_impl execl error ") ;
+ }
+ else {
+ INFOS(machineName() << " Engines_Container_i::start_impl execl done");
+ }
+ exit(0) ;
+ }
+#endif
+
+ obj = Engines::Container::_nil() ;
+ try {
+ string cont("/Containers/");
+ cont += machineName() ;
+ cont += "/" ;
+ cont += ContainerName;
+ nilvar = true ;
+ int count = 20 ;
+ while ( nilvar && count >= 0) {
+ sleep( 1 ) ;
+ obj = _NS->Resolve(cont.c_str());
+ nilvar = CORBA::is_nil( obj ) ;
+ if ( nilvar ) {
+ INFOS(count << ". " << machineName()
+ << " start_impl unknown container " << cont.c_str());
+ count -= 1 ;
+ }
+ }
+ _numInstanceMutex.unlock() ;
+ if ( !nilvar ) {
+ MESSAGE("start_impl container found after runSession(SALOME_Container)") ;
+ }
+ return Engines::Container::_narrow(obj);
+ }
+ catch (ServiceUnreachable&) {
+ INFOS(machineName() << "Caught exception: Naming Service Unreachable");
+ }
+ catch (...) {
+ INFOS(machineName() << "Caught unknown exception.");
+ }
+ _numInstanceMutex.unlock() ;
+ MESSAGE("start_impl container not found after runSession(SALOME_Container)") ;
+ return Engines::Container::_nil() ;
+}
+
+Engines::Component_ptr Engines_Container_i::load_impl
+ (const char* nameToRegister,
+ const char* componentName)
+{
+ BEGIN_OF("Container_i::load_impl");
+
+ _numInstanceMutex.lock() ; // lock on the instance number
+ _numInstance++ ;
+ char _aNumI[12];
+ sprintf(_aNumI,"%d",_numInstance) ;
+
+ string _impl_name = componentName;
+ string _nameToRegister = nameToRegister;
+ string instanceName = _nameToRegister + "_inst_" + _aNumI ;
+ //SCRUTE(instanceName);
+
+ //string absolute_impl_name = _library_path + "lib" + _impl_name + ".so";
+ string absolute_impl_name(_impl_name);
+ // SCRUTE(absolute_impl_name);
+ void* handle;
+ handle = dlopen(absolute_impl_name.c_str(), RTLD_LAZY);
+ if (!handle)
+ {
+ INFOS("Can't load shared library : " << absolute_impl_name);
+ INFOS("error dlopen: " << dlerror());
+ _numInstanceMutex.unlock() ;
+ return Engines::Component::_nil() ;
+ }
+
+ string factory_name = _nameToRegister + string("Engine_factory");
+ // SCRUTE(factory_name) ;
+
+ typedef PortableServer::ObjectId * (*FACTORY_FUNCTION)
+ (CORBA::ORB_ptr,
+ PortableServer::POA_ptr,
+ PortableServer::ObjectId *,
+ const char *,
+ const char *) ;
+// typedef PortableServer::ObjectId * (*FACTORY_FUNCTION_SUPERV)
+// (CORBA::ORB_ptr,
+// PortableServer::POA_ptr,
+// PortableServer::ObjectId *,
+// const char *,
+// const char * ,
+// int , char ** ) ;
+
+ FACTORY_FUNCTION Component_factory = (FACTORY_FUNCTION) dlsym(handle, factory_name.c_str());
+// FACTORY_FUNCTION_SUPERV Component_factory_superv = (FACTORY_FUNCTION_SUPERV) Component_factory ;
+
+// PortableServer::ObjectId * (*Component_factory) (CORBA::ORB_ptr,
+// PortableServer::POA_ptr,
+// PortableServer::ObjectId *,
+// const char *,
+// const char *) =
+// (PortableServer::ObjectId * (*) (CORBA::ORB_ptr,
+// PortableServer::POA_ptr,
+// PortableServer::ObjectId *,
+// const char *,
+// const char *))
+// dlsym(handle, factory_name.c_str());
+
+ char *error ;
+ if ((error = dlerror()) != NULL)
+ {
+ INFOS("Can't resolve symbol: " + factory_name);
+ SCRUTE(error);
+ _numInstanceMutex.unlock() ;
+ return Engines::Component::_nil() ;
+ }
+
+ // Instanciate required CORBA object
+ PortableServer::ObjectId * id ;
+// if ( factory_name == "SupervisionEngine_factory" ) { // for Python ...
+// id = (Component_factory_superv) (_orb, _poa, _id, instanceName.c_str(),
+// _nameToRegister.c_str(), _argc , _argv );
+// }
+// else {
+ id = (Component_factory) (_orb, _poa, _id, instanceName.c_str(),
+ _nameToRegister.c_str());
+// }
+ // get reference from id
+ CORBA::Object_var o = _poa->id_to_reference(*id);
+ Engines::Component_var iobject = Engines::Component::_narrow(o) ;
+
+// _numInstanceMutex.lock() ; // lock on the add on handle_map (necessary ?)
+ // register the engine under the name containerName.dir/nameToRegister.object
+ string component_registerName = _containerName + "/" + _nameToRegister;
+ _NS->Register(iobject, component_registerName.c_str()) ;
+
+//Jr _numInstanceMutex.lock() ; // lock on the add on handle_map (necessary ?)
+ handle_map[instanceName] = handle;
+ _numInstanceMutex.unlock() ;
+// END_OF("Container_i::load_impl");
+ return Engines::Component::_duplicate(iobject);
+}
+
+void Engines_Container_i::remove_impl(Engines::Component_ptr component_i)
+{
+ ASSERT(! CORBA::is_nil(component_i));
+ string instanceName = component_i->instanceName() ;
+ MESSAGE("unload component " << instanceName);
+ component_i->destroy() ;
+ MESSAGE("test key handle_map");
+ _numInstanceMutex.lock() ; // lock on the remove on handle_map
+ if (handle_map[instanceName]) // if key does not exist, created & initialized null
+ {
+ remove_map[instanceName] = handle_map[instanceName] ;
+ }
+ else MESSAGE("pas d'entree handle_map");
+ handle_map.erase(instanceName) ;
+ _numInstanceMutex.unlock() ;
+ MESSAGE("contenu handle_map");
+ map::iterator im ;
+ for (im = handle_map.begin() ; im != handle_map.end() ; im ++)
+ {
+ MESSAGE("reste " << (*im).first);
+ }
+}
+
+void Engines_Container_i::finalize_removal()
+{
+ MESSAGE("finalize unload : dlclose");
+ map::iterator im ;
+ _numInstanceMutex.lock() ; // lock on the explore remove_map & dlclose
+ for (im = remove_map.begin() ; im != remove_map.end() ; im ++)
+ {
+ void * handle = (*im).second ;
+ dlclose(handle) ;
+ MESSAGE("dlclose " << (*im).first);
+ }
+ remove_map.clear() ;
+ _numInstanceMutex.unlock() ;
+ MESSAGE("remove_map.clear()");
+}
+
+void ActSigIntHandler() {
+ struct sigaction SigIntAct ;
+ SigIntAct.sa_sigaction = &SigIntHandler ;
+ SigIntAct.sa_flags = SA_SIGINFO ;
+ if ( sigaction( SIGINT , &SigIntAct, NULL ) ) {
+ perror("SALOME_Container main ") ;
+ exit(0) ;
+ }
+ else {
+ INFOS("SigIntHandler activated") ;
+ }
+}
+
+void SigIntHandler(int what , siginfo_t * siginfo ,
+ void * toto ) {
+ MESSAGE("SigIntHandler what " << what << endl
+ << " si_signo " << siginfo->si_signo << endl
+ << " si_code " << siginfo->si_code << endl
+ << " si_pid " << siginfo->si_pid) ;
+ if ( _Sleeping ) {
+ _Sleeping = false ;
+ INFOS("SigIntHandler END sleeping.")
+ MESSAGE("SigIntHandler END sleeping.") ;
+ return ;
+ }
+ else {
+ ActSigIntHandler() ;
+ _Sleeping = true ;
+ INFOS("SigIntHandler BEGIN sleeping.")
+ MESSAGE("SigIntHandler BEGIN sleeping.") ;
+ int count = 0 ;
+ while( _Sleeping ) {
+ sleep( 1 ) ;
+ count += 1 ;
+ }
+ INFOS("SigIntHandler LEAVE sleeping after " << count << " s.")
+ MESSAGE("SigIntHandler LEAVE sleeping after " << count << " s.") ;
+ return ;
+ }
+}
diff --git a/src/Container/Makefile.in b/src/Container/Makefile.in
new file mode 100644
index 000000000..1d52e5ffa
--- /dev/null
+++ b/src/Container/Makefile.in
@@ -0,0 +1,42 @@
+#==============================================================================
+# File : Makefile.in
+# Created : mar jui 3 12:58:13 CEST 2001
+# Author : Paul RASCLE, EDF
+# Project : SALOME
+# Copyright : EDF 2001
+# $Header$
+#==============================================================================
+
+# source path
+top_srcdir=@top_srcdir@
+top_builddir=../..
+srcdir=@srcdir@
+VPATH=.:@srcdir@:@top_srcdir@/idl
+
+
+@COMMENCE@
+
+EXPORT_PYSCRIPTS = SALOME_ComponentPy.py SALOME_ContainerPy.py
+
+EXPORT_HEADERS = \
+ SALOME_Component_i.hxx \
+ SALOME_Container_i.hxx
+
+# Libraries targets
+
+LIB = libSalomeContainer.la
+LIB_SRC = Component_i.cxx Container_i.cxx
+LIB_SERVER_IDL = SALOME_Registry.idl SALOME_Component.idl
+
+# Executables targets
+BIN = SALOME_Container
+BIN_SRC =
+BIN_SERVER_IDL = SALOME_Component.idl
+
+CPPFLAGS+= $(PYTHON_INCLUDES) -I../Logger
+
+LDFLAGS+= -lSalomeNS -lRegistry -lOpUtil -lSalomeNotification -lSalomeLoggerServer
+
+LIBS += -Xlinker -export-dynamic $(PYTHON_LIBS)
+
+@CONCLUDE@
diff --git a/src/Container/SALOME_ComponentPy.py b/src/Container/SALOME_ComponentPy.py
new file mode 100755
index 000000000..3dd4dd5a0
--- /dev/null
+++ b/src/Container/SALOME_ComponentPy.py
@@ -0,0 +1,159 @@
+#! /usr/bin/env python
+
+#=============================================================================
+# File : SALOME_ComponentPy.py
+# Created : lun sep 3 17:54:13 CEST 2001
+# Author : Paul RASCLE, EDF
+# Project : SALOME
+# Copyright : EDF 2001
+# $Header$
+#=============================================================================
+
+import os
+import sys
+from omniORB import CORBA, PortableServer
+import Engines, Engines__POA
+import Registry
+from Utils_Identity import *
+from SALOME_NamingServicePy import *
+from libNOTIFICATION import *
+
+from SALOME_utilities import *
+
+#=============================================================================
+
+#define an implementation of the component interface
+
+class SALOME_ComponentPy_i (Engines__POA.Component):
+ _orb = None
+ _poa = None
+
+ #-------------------------------------------------------------------------
+
+ def __init__ (self, orb, poa, contID, containerName,
+ instanceName, interfaceName, notif):
+ # Notif for notification services
+ # NOT YET IMPLEMENTED
+ MESSAGE( "SALOME_ComponentPy_i::__init__" + " " + str (containerName) + " " + str(instanceName) + " " + str(interfaceName) )
+ self._orb = orb
+ self._poa = poa
+ self._instanceName = instanceName
+ self._interfaceName = interfaceName
+ self._containerName = containerName
+ self._notif = notif
+ self._myConnexionToRegistry = 0
+ self._graphName = ''
+ self._nodeName = ''
+ self._ThreadId = 0
+
+ naming_service = SALOME_NamingServicePy_i(self._orb)
+ Component_path = "/Containers/" + os.getenv( "HOSTNAME" ) + "/" + self._containerName + "/" + self._interfaceName
+ MESSAGE( 'SALOME_ComponentPy_i Register' + str( Component_path ) )
+ naming_service.Register(self._this(), Component_path)
+
+ # Add componentinstance to registry
+ obj = naming_service.Resolve('/Registry')
+ if obj is None:
+ MESSAGE( "Registry Reference is invalid" )
+ else:
+ regist = obj._narrow(Registry.Components)
+ if regist is None:
+ MESSAGE( "Registry Reference is invalid" )
+ else:
+ ior = orb.object_to_string(contID)
+ MESSAGE( ior )
+
+ lesInfos = Identity(self._instanceName)
+ infos = Registry.Infos(lesInfos._name,
+ lesInfos._pid,
+ lesInfos._machine,
+ lesInfos._adip,
+ lesInfos._uid,
+ lesInfos._pwname,
+ int(lesInfos._tc_start),
+ 0,0,0,
+ lesInfos._cdir,
+ -1,
+ ior)
+
+ res = regist.add(infos)
+
+ self._notifSupplier = NOTIFICATION_Supplier_Swig(instanceName, notif)
+
+ #-------------------------------------------------------------------------
+
+ def _get_instanceName(self):
+ MESSAGE( "SALOME_ComponentPy_i::_get_instanceName" )
+ return self._instanceName
+
+ #-------------------------------------------------------------------------
+
+ def ping(self):
+ MESSAGE( "SALOME_ComponentPy_i::ping" )
+
+ #-------------------------------------------------------------------------
+
+ def destroy(self):
+ MESSAGE( "SALOME_ComponentPy_i::destroy" )
+ poa.deactivate_object(self)
+ CORBA.release(_poa)
+
+ #-------------------------------------------------------------------------
+
+ def GetContainerRef(self):
+ MESSAGE( "SALOME_ComponentPy_i::GetContainerRef" )
+
+ #-------------------------------------------------------------------------
+
+ def beginService(self , serviceName ):
+ MESSAGE( "Send BeginService notification for " + str(serviceName) + "for graph/node" + str(self._graphName) + str(self._nodeName) )
+ MESSAGE( "Component instance : " + str ( self._instanceName ) )
+
+ #-------------------------------------------------------------------------
+
+ def endService(self , serviceName ):
+ MESSAGE( "Send EndService notification for " + str(serviceName) + "for graph/node" + str(self._graphName) + str(self._nodeName) )
+ MESSAGE( "Component instance : " + str(self._instanceName) )
+
+ #-------------------------------------------------------------------------
+
+ def sendMessage(self , event_type , message ):
+ self._notifSupplier.Send(self.graphName(), self.nodeName(), event_type, message)
+
+ #-------------------------------------------------------------------------
+
+ def Names(self , GraphName , NodeName ):
+ MESSAGE( "SALOME_ComponentPy_i::Names" + str(GraphName) + str(NodeName) )
+ self._graphName = GraphName
+ self._nodeName = NodeName
+
+ #-------------------------------------------------------------------------
+
+ def graphName(self):
+ return self._graphName
+
+ #-------------------------------------------------------------------------
+
+ def nodeName(self):
+ return self._nodeName
+
+ #-------------------------------------------------------------------------
+
+ def Kill(self):
+ MESSAGE( "SALOME_ComponentPy_i::Kill not yet implemented" )
+
+ #-------------------------------------------------------------------------
+
+ def Stop(self):
+ MESSAGE( "SALOME_ComponentPy_i::Stop not yet implemented" )
+
+ #-------------------------------------------------------------------------
+
+ def Suspend(self):
+ MESSAGE( "SALOME_ComponentPy_i::Suspend not yet implemented" )
+
+ #-------------------------------------------------------------------------
+
+ def Resume(self):
+ MESSAGE( "SALOME_ComponentPy_i::Resume not yet implemented" )
+
diff --git a/src/Container/SALOME_Component_i.hxx b/src/Container/SALOME_Component_i.hxx
new file mode 100644
index 000000000..b57a53005
--- /dev/null
+++ b/src/Container/SALOME_Component_i.hxx
@@ -0,0 +1,86 @@
+//=============================================================================
+// File : SALOME_Component_i.hxx
+// Created : jeu jui 12 08:04:40 CEST 2001
+// Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA
+// Project : SALOME
+// Copyright : EDF 2001 - CEA 2001
+// $Header$
+//=============================================================================
+
+#ifndef _SALOME_COMPONENT_I_HXX_
+#define _SALOME_COMPONENT_I_HXX_
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include CORBA_SERVER_HEADER(SALOME_Component)
+#include "NOTIFICATION.hxx"
+
+class RegistryConnexion;
+
+class Engines_Component_i: public virtual POA_Engines::Component,
+ public virtual PortableServer::RefCountServantBase
+{
+public:
+ Engines_Component_i();
+ Engines_Component_i(CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ PortableServer::ObjectId * contId,
+ const char *instanceName,
+ const char *interfaceName,
+ bool notif = false);
+ // Consructeur pour composant parallele: ne pas faire appel au registry
+ Engines_Component_i(CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ PortableServer::ObjectId * contId,
+ const char *instanceName,
+ const char *interfaceName,
+ int flag,
+ bool notif = false);
+
+ virtual ~Engines_Component_i();
+
+ char* instanceName();
+ char* interfaceName();
+
+ void destroy();
+ void ping();
+
+ Engines::Container_ptr GetContainerRef();
+ PortableServer::ObjectId * getId();
+
+ void beginService(const char *serviceName);
+ void endService(const char *serviceName);
+ void sendMessage(const char *event_type, const char *message);
+
+ void Names( const char * graphName , const char * nodeName ) ;
+ char * graphName() ;
+ char * nodeName() ;
+ bool Kill_impl();
+ bool Stop_impl();
+ bool Suspend_impl();
+ bool Resume_impl();
+
+protected:
+ string _instanceName ;
+ string _interfaceName ;
+ string _serviceName ;
+ string _graphName ;
+ string _nodeName ;
+ CORBA::ORB_ptr _orb;
+ PortableServer::POA_ptr _poa;
+ PortableServer::ObjectId * _id;
+ PortableServer::ObjectId * _contId;
+ Engines_Component_i * _thisObj ;
+ RegistryConnexion *_myConnexionToRegistry;
+ NOTIFICATION_Supplier* _notifSupplier;
+
+private:
+ pthread_t _ThreadId ;
+};
+
+#endif
diff --git a/src/Container/SALOME_Container.cxx b/src/Container/SALOME_Container.cxx
new file mode 100644
index 000000000..3ae29bacc
--- /dev/null
+++ b/src/Container/SALOME_Container.cxx
@@ -0,0 +1,121 @@
+using namespace std;
+//=============================================================================
+// File : SALOME_Container.cxx
+// Created : jeu jui 12 08:04:40 CEST 2001
+// Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA
+// Project : SALOME
+// Copyright : EDF 2001 - CEA 2001
+// $Header$
+//=============================================================================
+using namespace std;
+#include
+
+# include "Utils_ORB_INIT.hxx"
+# include "Utils_SINGLETON.hxx"
+
+#include "SALOME_Container_i.hxx"
+#include
+#include
+#include "utilities.h"
+
+#include
+
+static PyMethodDef MethodPyVoidMethod[] = {
+ { NULL, NULL }
+};
+
+int main(int argc, char* argv[])
+{
+ INFOS_COMPILATION;
+ BEGIN_OF(argv[0])
+
+ Py_Initialize() ;
+ PySys_SetArgv( argc , argv ) ;
+ Py_InitModule( "InitPyRunMethod" , MethodPyVoidMethod ) ;
+
+ try {
+
+ // Initialise the ORB.
+// CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
+ ORB_INIT &init = *SINGLETON_::Instance() ;
+ ASSERT(SINGLETON_::IsAlreadyExisting()) ;
+ CORBA::ORB_var &orb = init( argc , argv ) ;
+
+ // Obtain a reference to the root POA.
+ CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
+ PortableServer::POA_var root_poa = PortableServer::POA::_narrow(obj);
+
+ // obtain the root poa manager
+ PortableServer::POAManager_var pman = root_poa->the_POAManager();
+
+ // define policy objects
+ PortableServer::ImplicitActivationPolicy_var implicitActivation =
+ root_poa->create_implicit_activation_policy(PortableServer::NO_IMPLICIT_ACTIVATION) ;
+
+ // default = NO_IMPLICIT_ACTIVATION
+ PortableServer::ThreadPolicy_var threadPolicy =
+ root_poa->create_thread_policy(PortableServer::ORB_CTRL_MODEL) ;
+ // default = ORB_CTRL_MODEL, other choice SINGLE_THREAD_MODEL
+
+ // create policy list
+ CORBA::PolicyList policyList;
+ policyList.length(2);
+ policyList[0] = PortableServer::ImplicitActivationPolicy::_duplicate(implicitActivation) ;
+ policyList[1] = PortableServer::ThreadPolicy::_duplicate(threadPolicy) ;
+
+ // create the child POA
+ PortableServer::POAManager_var nil_mgr = PortableServer::POAManager::_nil() ;
+ PortableServer::POA_var factory_poa =
+ root_poa->create_POA("factory_poa", pman, policyList) ;
+ //with nil_mgr instead of pman, a new POA manager is created with the new POA
+
+ // destroy policy objects
+ implicitActivation->destroy() ;
+ threadPolicy->destroy() ;
+
+ char *containerName = "";
+ if (argc >1)
+ {
+ containerName = argv[1] ;
+ }
+
+ Engines_Container_i * myContainer
+ = new Engines_Container_i(orb, factory_poa, containerName , argc , argv );
+
+// Engines_Container_i * myContainer
+// = new Engines_Container_i(string(argv[1]),string(argv[2]), orb, factory_poa);
+
+ // use naming service
+// myContainer->_NS.init_orb(orb);
+// Engines::Container_ptr pCont = Engines::Container::_narrow(myContainer->_this());
+// myContainer->_NS.Register(pCont, argv[2]);
+
+ pman->activate();
+
+ orb->run();
+
+ orb->destroy();
+ }
+ catch(CORBA::SystemException&)
+ {
+ INFOS("Caught CORBA::SystemException.")
+ }
+ catch(PortableServer::POA::WrongPolicy&)
+ {
+ INFOS("Caught CORBA::WrongPolicyException.")
+ }
+ catch(PortableServer::POA::ServantAlreadyActive&)
+ {
+ INFOS("Caught CORBA::ServantAlreadyActiveException")
+ }
+ catch(CORBA::Exception&)
+ {
+ INFOS("Caught CORBA::Exception.")
+ }
+ catch(...)
+ {
+ INFOS("Caught unknown exception.")
+ }
+ END_OF(argv[0]);
+}
+
diff --git a/src/Container/SALOME_ContainerPy.py b/src/Container/SALOME_ContainerPy.py
new file mode 100755
index 000000000..a5d96eda5
--- /dev/null
+++ b/src/Container/SALOME_ContainerPy.py
@@ -0,0 +1,162 @@
+#! /usr/bin/env python
+
+#=============================================================================
+# File : SALOME_ContainerPy.py
+# Created : lun sep 3 17:54:13 CEST 2001
+# Author : Paul RASCLE, EDF
+# Project : SALOME
+# Copyright : EDF 2001
+# $Header$
+#=============================================================================
+
+import os
+import sys
+import string
+from omniORB import CORBA, PortableServer
+# import SALOMEDS before other SALOME modules
+# (if not, incomplete import done by SALOME module: no load of SALOMEDS_attributes)
+import SALOMEDS
+import Engines, Engines__POA
+from SALOME_NamingServicePy import *
+from SALOME_ComponentPy import *
+
+from SALOME_utilities import *
+
+#=============================================================================
+
+#define an implementation of the container interface
+
+class SALOME_ContainerPy_i (Engines__POA.Container):
+ _orb = None
+ _poa = None
+ _numInstance = 0
+
+ #-------------------------------------------------------------------------
+
+ def __init__(self, orb, poa, containerName):
+ MESSAGE( "SALOME_ContainerPy_i::__init__" )
+ self._orb = orb
+ self._poa = poa
+ self._containerName = containerName
+
+ myMachine=string.split(os.getenv( "HOSTNAME" ),'.')
+ naming_service = SALOME_NamingServicePy_i(self._orb)
+ self._naming_service = naming_service
+ Container_path = "/Containers/" + myMachine[0] + "/" + self._containerName
+ MESSAGE( str(Container_path) )
+ naming_service.Register(self._this(), Container_path)
+
+ #-------------------------------------------------------------------------
+
+ def start_impl(self, ContainerName):
+ MESSAGE( "SALOME_ContainerPy_i::start_impl " + str(ContainerName) )
+ myMachine=string.split(os.getenv( "HOSTNAME" ),'.')
+ theContainer = "/Containers/" + myMachine[0] + "/" + ContainerName
+ try:
+ obj = self._naming_service.Resolve(theContainer)
+ except :
+ obj = None
+ MESSAGE( "SALOME_ContainerPy_i::start_impl " + str(ContainerName) + ".object not found in Naming Service" )
+ if obj is None:
+ container = None
+ else:
+ container = obj._narrow(Engines.Container)
+ if container is None:
+ MESSAGE( "SALOME_ContainerPy_i::start_impl " + str(containerName) + ".object exists but is not a Container" )
+ else :
+ MESSAGE( "SALOME_ContainerPy_i::start_impl " + str(ContainerName) + ".object found without runSession" )
+ return container
+ shstr = os.getenv( "PWD" ) + "/"
+ shstr += "runSession ./SALOME_ContainerPy.py "
+ shstr += ContainerName
+ shstr += " > /tmp/"
+ shstr += ContainerName
+ shstr += ".log 2>&1 &"
+ MESSAGE( "SALOME_ContainerPy_i::start_impl " + "os.system(" + str(shstr) + ")" )
+ os.system( shstr )
+ count = 21
+ while container is None :
+ time.sleep(1)
+ count = count - 1
+ MESSAGE( str(count) + ". Waiting for " + str(theContainer) )
+ try :
+ obj = self._naming_service.Resolve(theContainer)
+ except :
+ obj = None
+ if obj is None:
+ container = None
+ else:
+ container = obj._narrow(Engines.Container)
+ if container is None:
+ MESSAGE( str(containerName) + ".object exists but is not a Container" )
+ return container
+ if count == 0 :
+ return container
+
+ #-------------------------------------------------------------------------
+
+ def load_impl(self, nameToRegister, componentName):
+ MESSAGE( "SALOME_ContainerPy_i::load_impl " + str(nameToRegister) + ' ' + str(componentName) )
+ self._numInstance = self._numInstance +1
+ instanceName = nameToRegister + "_inst_" + `self._numInstance`
+ interfaceName = nameToRegister
+ the_command = "import " + nameToRegister + "\n"
+ the_command = the_command + "comp_i = " + nameToRegister + "." + nameToRegister
+ the_command = the_command + "(self._orb, self._poa, self._this(), self._containerName, instanceName, interfaceName)\n"
+ MESSAGE( "SALOME_ContainerPy_i::load_impl :" + str (the_command) )
+ exec the_command
+ comp_o = comp_i._this()
+ return comp_o
+
+ #-------------------------------------------------------------------------
+
+ def remove_impl(self, component):
+ MESSAGE( "SALOME_ContainerPy_i::remove_impl" )
+
+ #-------------------------------------------------------------------------
+
+ def finalize_removal(self):
+ MESSAGE( "SALOME_ContainerPy_i::finalize_removal" )
+
+ #-------------------------------------------------------------------------
+
+ def ping(self):
+ MESSAGE( "SALOME_ContainerPy_i::ping" )
+
+ #-------------------------------------------------------------------------
+
+ def _get_name(self):
+ MESSAGE( "SALOME_ContainerPy_i::_get_name" )
+
+ #-------------------------------------------------------------------------
+
+ def _get_machineName(self):
+ MESSAGE( "SALOME_ContainerPy_i::_get_MachineName" )
+ self._machineName = "localhost"
+ return self._machineName
+
+#=============================================================================
+
+#initialise the ORB and find the root POA
+orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID)
+poa = orb.resolve_initial_references("RootPOA")
+
+#create an instance of SALOME_ContainerPy_i and a Container reference
+#containerName = "FactoryServerPy"
+MESSAGE( str(sys.argv) )
+containerName = sys.argv[1]
+cpy_i = SALOME_ContainerPy_i(orb, poa, containerName)
+cpy_o = cpy_i._this()
+
+#activate the POA
+poaManager = poa._get_the_POAManager()
+poaManager.activate()
+
+#Block for ever
+orb.run()
+
+
+
+
+
+
diff --git a/src/Container/SALOME_Container_i.hxx b/src/Container/SALOME_Container_i.hxx
new file mode 100644
index 000000000..6db4d5d8d
--- /dev/null
+++ b/src/Container/SALOME_Container_i.hxx
@@ -0,0 +1,76 @@
+//=============================================================================
+// File : SALOME_Container_i.hxx
+// Created : jeu jui 12 08:04:44 CEST 2001
+// Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA
+// Project : SALOME
+// Copyright : EDF 2001 - CEA 2001
+// $Header$
+//=============================================================================
+
+#ifndef _SALOME_CONTAINER_I_HXX_
+#define _SALOME_CONTAINER_I_HXX_
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include CORBA_SERVER_HEADER(SALOME_Component)
+#include
+#include